1.加入依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>
2.springmvc配置文件
<!-- 校验器 -->
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<!-- 校验器-->
<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:validateMessage</value>
</list>
</property>
<!-- 资源文件编码格式 -->
<property name="fileEncodings" value="utf-8" />
<!-- 对资源文件内容缓存时间,单位秒 -->
<property name="cacheSeconds" value="120" />
</bean>
<mvc:annotation-driven validator="validator"></mvc:annotation-driven>
3.pojo类校验
public class User {
private Integer id;
@Size(min=1,max=30,message="{items.name.length.error}",groups={ValidGroup1.class})
private String name;
private String password;
@NotNull(message="{items.age.not.null}")
private Integer age;
}
4.校验信息配置
建立validateMessage.properties
items.name.length.error="\u957F\u5EA6\u8D85\u51FA\u8303\u56F4"
items.age.not.null="\u6D88\u606F\u4E0D\u80FD\u4E3A\u7A7A"
5.controller类中校验
@RequestMapping(value="/getUser",method=RequestMethod.POST)
@ResponseBody
public List<ObjectError> getUser(@RequestBody @Validated User user,BindingResult bindingResult,Model model){
List<ObjectError> errors=null;
if(bindingResult.hasErrors()){
errors = bindingResult.getAllErrors();
for (ObjectError objectError : errors) {
System.out.println(objectError.getDefaultMessage());
}
model.addAttribute("errorMsg",errors);
}
return errors;
}