jar包
在springmvc.xml中配置validator
<!-- 配置注解驱动 -->
<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" />
<!-- 指定校验使用的资源文件,在文件中配置校验错误信息,如果不指定则默认使用classpath下的ValidationMessages.properties -->
<property name="validationMessageSource" ref="messageSource" />
</bean>
<!-- 校验错误信息配置文件 -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 资源文件名-->
<property name="basenames">
<list>
<value>classpath:LoginValidationMessages</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8"/>
<!-- 资源文件编码格式 -->
<property name="fileEncodings" value="utf-8" />
<!-- 对资源文件内容缓存时间,单位秒 -->
<property name="cacheSeconds" value="120" />
</bean>
错误信息的配置文件LoginValidationMessages.properties
#添加校验错误提示信息
user.username.length.error=请输入3到10字符的用户名
user.password.length.error=请输入5到20字符的密码
user.email.error=请输入正确的邮箱
controller
@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(Model model,@Valid User user, BindingResult result) {
String page = "success";
if(result.hasErrors()){
page = "login";
List<ObjectError> list = result.getAllErrors();
model.addAttribute("errors", list);
} else{
model.addAttribute("user", user);
page = "success";
}
return page;
}
<!-- 显示出错信息 -->
<c:if test="${errors!=null}">
<c:forEach items="${errors}" var="error">
${error.defaultMessage }<br />
</c:forEach>
</c:if>