为什么在Spring PetClinic示例中要为ID设置setDisallowedFields?

6

从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");
}

根据上述代码,用户在表单中输入的所有者对象的名字字段将不会被设置。这是否正确?

源代码链接

1个回答

7

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接