示例:
/** * 方法绑定属性中不允许的参数 */ private final static String[] DISALLOWED_PARAMS = new String[]{"idObject.primarykey"}; @InitBinder public void initBinder(WebDataBinder binder) { binder.setDisallowedFields(DISALLOWED_PARAMS); }
在添加和更新时,您应该禁止“id”字段。否则,恶意用户可能会篡改更新请求的“id”请求参数的值,从而将不同的记录更新为表单所示的记录(假设没有 ACL 或其他域级安全性)。 但是,如果您只是禁止“id”字段,控制器会将 ID 视为 null,这在插入时有效,但在更新时无效(例如,它可能会尝试插入新记录而不是更新,具体取决于您的持久性机制 ' 正在使用)。因此,您希望控制器记住请求之间的域对象的不可编辑值(不仅是 ID,而是所有不允许的字段),以便它可以将所有正确的值发送到服务层或其他业务逻辑。这是使用类型级 @SessionAttributes 注释完成的。
https://www.cnblogs.com/softidea/p/10078605.html