我正在尝试使用java验证api& amp实现Spring mvc验证。 hibernate验证器但不知何故代码没有验证输入。 BindingResult对象不包含任何错误。
我遵循了本教程:https://spring.io/guides/gs/validating-form-input/
以下是Controller代码:
@RequestMapping(value="/register", method= RequestMethod.POST)
public String processRegistration( @javax.validation.Valid User user,BindingResult errors, Model model) {
if(errors.hasErrors()){
model.addAttribute(errors);
return "register";
}
System.out.println("Saving user..user.getUsername()");
return "redirect:/user/"+user.getUsername();
}
以下是需要验证的对象:
public class User {
@NotEmpty
@Size(min=5, max=15)
String firstName;
@NotEmpty
@Size(min=5, max=15)
String lastName;
@NotEmpty
@Size(min=5, max=15)
String username;
@NotEmpty
@Size(min=5, max=15)
String password;
.....
}
Dispacther servlet:
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
// TODO Auto-generated method stub
return new Class<?>[]{main.config.RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{main.config.WebConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
我在构建路径中有两个验证jar
但仍然没有进行验证。你能告诉我为什么吗?
答案 0 :(得分:0)
我通过将hibernate-validator jar更新为hibernate-validator-4.2.0.Final并添加了SLF4J jar版本slf4j.api-1.6.1解决了这个问题。
现在我能够在BindingResult对象中获取错误。