jar包
springmvc.xml中配置
<mvc:
annotation
-driven conversion-service="conversionService"
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:CustomValidationMessages</value>
</list>
</property>
<!-- 资源文件编码格式 -->
<property name="fileEncodings" value="utf-8"/>
<!-- 对资源文件内容缓存时间。单位:秒 -->
<property name="cacheSeconds" value="120"/>
</bean>
- 实体类中:
public class User {
/**
* This field was generated by MyBatis Generator.
* This field
corresponds
to the database column user.userId
*
* @mbggenerated Mon May 01 16:37:08 CST 2017
*/
private Integer userid;
/**
* This field was generated by MyBatis Generator.
* This field
corresponds
to the database column user.username
*
* @mbggenerated Mon May 01 16:37:08 CST 2017
*/
@Size(min=1,max=30,message="{user.name.length.error}")
private String username;
}
校验错误信息配置文件CustomValidationMessages.properties:
- Controller中:
@RequestMapping("/buy")
public ModelAndView buy(Model model,int goodsid,int quantity,HttpSession session,@Validated User user,BindingResult bindingResult)throws Exception
{
//获取校验错误信息
if (bindingResult.hasErrors()) {
//输出错误信息
List<ObjectError> allErrors=bindingResult.getAllErrors();
for (ObjectError objectError : allErrors) {
//输出错误信息
System.out.println(objectError.getDefaultMessage());
}
//将错误信息传到页面
model.addAttribute("allErrors", allErrors);
}
校验分组
//group:此校验属于哪个分组,groups可以定义多个分组
@Size(min=1,max=30,message="{user.name.length.error}",groups={ValidGroup1.class})
private String username;
//@Validated(value={ValidGroup1.class})指定使用ValidGroup1分组的校验
@RequestMapping("/buy")
public ModelAndView buy(Model model,int goodsid,int quantity,HttpSession session,@Validated(value={ValidGroup1.class}) User user,BindingResult bindingResult)throws Exception
{