BindingResult不能获取错误对象,代码如下:
@RequestMapping(value = "/login") public String error4( Model model, UserModel user,BindingResult bindingResult){ if(bindingResult.hasErrors()){ List<ObjectError> ls=bindingResult.getAllErrors(); System.out.println(ls); return "redirect:login.jsp"; } return "hello";
}
public class UserModel { @NotNull(message="用户名不能为空") private String username; private String password; get/set…… }
总结如下:
1. 加入校验用jar包:
2. 需要在spring配置文件中加入:
<mvc:annotation-driven validator="validator" ></mvc:annotation-driven> <!-- 校验器 --> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <!-- Hibernate校验器 --> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> </bean>
3. UserModel中如果是校验表单输入框是否为空,应使用:
@NotEmpty(message="用户名不能为空")
4. BindingResult必须跟表单对象配对使用:
如:UserModel user,BindingResult bindingResult紧随UserModel其后
5. 需要在UserModel user前加上@Validated或者@Valid
欢迎补充……