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>