为什么setDisallowedFields为id? - Spring petclinic的例子

jav*_*oob 6 spring spring-mvc

从Spring API,我明白@InitBinder用于初始化一些绑定规则..

在petclinic的例子中为什么我们有setdisallowed("id")?当id没有显示在表单上时?

@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
    dataBinder.setDisallowedFields("id");
}
Run Code Online (Sandbox Code Playgroud)

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

我们可以有这样的事情:

@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
    dataBinder.setDisallowedFields("FirstName");
}
Run Code Online (Sandbox Code Playgroud)

根据上面的代码,虽然用户在表单上输入,但不会设置所有者对象的名字字段?那是对的吗?

链接源

Boz*_*zho 6

因为如果最终用户修改页面或请求(例如使用FireBug),它仍然可以提交.因此,即使您不想要这样,他也可以将值注入绑定对象.