导入jar包

配置校验器
<!-- 校验器 --> <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:CustomValidationMessages</value> </list> </property> <!-- 资源文件编码格式 --> <property name="fileEncodings" value="utf-8" /> <!-- 对资源文件内容缓存时间,单位秒 --> <property name="cacheSeconds" value="120" /> </bean>
添加到自定义参数绑定的WebBindingInitializer中
<!-- 自定义webBinder --> <bean id="customBinder" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> <!-- 配置validator --> <property name="validator" ref="validator" /> </bean>
最终添加到适配器中
<!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <!-- 在webBindingInitializer中注入自定义属性编辑器、自定义转换器 --> <property name="webBindingInitializer" ref="customBinder"></property> </bean>
创建CustomValidationMessages配置文件

定义规则
package entity;import javax.validation.constraints.NotNull;import javax.validation.constraints.Size;import java.util.Date;public class Items { private Integer id; //商品名称的长度请限制在1到30个字符
@Size(min=1,max=30,message="{items.name.length.error}") private String name; private Float price; private String pic; //请输入商品生产日期
@NotNull(message="{items.createtime.is.notnull}") private Date createtime; private String detail; public Integer getId() { return id;
} public void setId(Integer id) { this.id = id;
} public String getName() { return name;
} public void setName(String name) { this.name = name == null ? null : name.trim();
} public Float getPrice() { return price;
} public void setPrice(Float price) { this.price = price;
} public String getPic() { return pic;
} public void setPic(String pic) { this.pic = pic == null ? null : pic.trim();
} public Date getCreatetime() { return createtime;
} public void setCreatetime(Date createtime) { this.createtime = createtime;
} public String getDetail() { return detail;
} public void setDetail(String detail) { this.detail = detail == null ? null : detail.trim();
}
}测试:
测试文件上传 名称: 日期:
Controller需要在校验的参数上添加@Validation注解...拿到BindingResult对象...
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。