springmvc的错误校验:
1.在spring的配置文件中配置校验器:
2.在实体类中的相应的属性上添加校验标注:
3.在controller中的相应形参中添加@Validated标注,在其后添加BindingResult bindingResult形参,用来接收校验出错信息,
每一个添加了@Validated注解的形参后面都对应一个BindingResult bindingResult形参。用法如下:
1.在spring的配置文件中配置校验器:
<mvc:annotation-driven validator="validator"></mvc:annotation-driven>
<!-- 配置校验器 ,需要配置到处理器适配器中,因为使用的是注解驱动,可以在mvc:annotation-driven标签中设置validator属性为校验器的id-->
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<!-- 校验器,使用hibernate的校验框架 -->
<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
<!-- 指定校验使用的资源文件,如果不指定则默认使用classpath下的ValidationMessage.properties -->
<property name="validationMessageSource" ref="messageSource" />
</bean>
<!-- 配置校验错误信息配置文件 -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 资源文件名 -->
<property name="basename">
<list>
<value>classpath:CustomValidationMessages</value>
</list>
</property>
<!-- 资源文件编码格式 -->
<property name="fileEncodings" value="utf-8" />
<!-- 资源文件缓存时间(120秒后重新加载) -->
<property name="cacheSeconds" value="120" />
</bean>
2.在实体类中的相应的属性上添加校验标注:
//名称在1到20个字符之间,message就是校验出错时提示的信息
@Size(min=1,max=20,message="${items.name.length.error}")
private String itemName;
@NotNull(message="${items.price.isnull}")
private String itemPrice;
3.在controller中的相应形参中添加@Validated标注,在其后添加BindingResult bindingResult形参,用来接收校验出错信息,
每一个添加了@Validated注解的形参后面都对应一个BindingResult bindingResult形参。用法如下:
if (bindingResult.hasErrors()) {
List<ObjectError> list = bindingResult.getAllErrors();
for (ObjectError objectError : list) {
System.out.println(objectError.getDefaultMessage());
}
}