嗨,这是我的控制器
@RequestMapping(value="/home", method = RequestMethod.POST)
public String homeSubmit(@Valid LoginForm loginForm , BindingResult bindResult){
if(bindResult.hasErrors() || bindResult.hasFieldErrors() ){
return "home";
}else{
return "Success";
}
}
@InitBinder("loginForm")
protected void initBinder(WebDataBinder binder) {
binder.setValidator(new LoginFormValidator());
}
以下是我的验证器
public class LoginFormValidator implements Validator {
public boolean supports(Class<?> classz) {
return LoginForm.class.equals(classz);
}
public void validate(Object target, Errors arg1) {
System.out.println("inside validate method validator");
LoginForm loginForm = (LoginForm) target;
if(! loginForm.getUserName().equalsIgnoreCase("xxx") ){
arg1.rejectValue("userName","Invalid Data");
}
if(! loginForm.getPassword().equalsIgnoreCase("yyy")){
arg1.rejectValue("password","Invalid Data");
}
}
}
问题是我的验证器并没有全部被调用。每次条件bindResult.hasErrors() || bindResult.hasFieldErrors()
都是false
。我也尝试过调试..并不是所有的都被调用