为什么要使用setDisallowedFields作为ID?—spring的例子


问题内容

从Spring API中,我了解到它@InitBinder是用来初始化一些绑定规则的。

在petclinic的例子中为什么会有setdisallowed("id")?当ID未显示在表单上时?

@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
    dataBinder.setDisallowedFields("id");
}

id字段未显示在网页上,那么为什么我们要使用上面的代码?

我们可以有这样的事情:

@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
    dataBinder.setDisallowedFields("FirstName");
}

按照上面的代码,尽管用户在表单上输入,所有者对象的名字字段将不会被设置?那是对的吗?

来源链接


问题答案:

因为如果最终用户修改页面或请求(例如使用FireBug),仍可以提交。因此,即使您不希望这样做,他也可以将值注入到绑定的对象中。