从Spring API中,我了解到@InitBinder
用于初始化一些绑定(bind)规则。
在petclinic的示例中,为什么要使用setdisallowed("id")
?当ID未显示在表单上时?
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
dataBinder.setDisallowedFields("id");
}
id字段未显示在网页上,那么为什么我们要使用上面的代码?
我们可以有这样的事情:
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
dataBinder.setDisallowedFields("FirstName");
}
按照上面的代码,尽管用户在表单上输入,所有者对象的名字字段将不会被设置?那是对的吗?
link for the source
最佳答案
因为如果最终用户修改页面或请求(例如使用FireBug),仍可以提交。因此,即使您不希望这样做,他也可以将值注入(inject)到您的绑定(bind)对象中。