@initbinder不适用于特定的模型属性
问题内容:
我正在使用@valid和@initbinder来验证传递给服务的数据,但是我遇到的问题@InitBinder
是仅在全球范围内有效,即
@InitBinder // possible to leave off for global behavior
protected void initBinder(WebDataBinder binder){
binder.setValidator(new LoginRequestValidator());
}
而不是像我有一个名为LoginRequest的模型对象那样的特定模型属性:
@InitBinder("LoginRequest") // possible to leave off for global behavior
protected void initBinder(WebDataBinder binder){
binder.setValidator(new LoginRequestValidator());
}
在这种情况下,根本不会调用验证器。.这是正确的方法吗?还是我错过了什么?
问题答案:
查看您方法的签名,必须
@InitBinder("loginRequest")
与 小我
的值@InitBinder
可以是以下之一
- 模型属性的名称
- 请求参数的名称
- 如果以上都不适用,则可以使用类的名称,但以 小写字母开头 。这就是Spring将未命名属性公开给模型的方式。