SpringMVC使用@InitBinder初始化一些绑定规则

示例:

/**
 * 方法绑定属性中不允许的参数
 */
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