- 配置到springmvc.xml中
<!-- 本地校验器 -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
<property name="validationMessageSource" ref="messageSource"></property>
</bean>
<!--使用资源文件记录错误信息 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:ValidationMessage</value>
</list>
</property>
<property name="fileEncodings" value="utf-8"></property>
<property name="cacheSeconds" value="120"></property>
</bean>
<mvc:annotation-driven validator="validator" />
2.在要校验的字段上使用注解
分组校验,哪个controller方法用同一个实体类里面的哪一个分组。自己随便写几个接口,标识分组。(ValidationG1,ValidationG2……….)
public String chUserInfo(Model model,@Validated(value={ValidationG2.class}) User user,BindingResult result) throws SQLException{
if(result.hasErrors()){
List<ObjectError> errorList=result.getAllErrors();
for (ObjectError objectError : errorList) {
System.out.println(objectError.getDefaultMessage());
}
model. addAttribute ("errorList", errorList);
return "toChUserInfo";
} else{
userService.setNewUserInfo(user);
List<User> user List = userService.getAllUsers();
model.addAttribute("userList", userList);
return "myListShow";
}
}
3.要校验的实体类Student
Public class Student{
@Not Empty (message="{user. ename.isNull}",groups={ValidationG1.class})
private String ename;
@NotEmpty(message="{user.job.isNull}”, groups={ValidationG2.class})
private String job;
}
4.资源文件中的错误信息