从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)对象中。

09-11 20:21