这篇文章主要介绍了SpringMVC实现验证校验过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
<强>一、概述强>
对前端的校验大多数通过js在页面校验,这种方法比较简单,如果对安全性考虑,还要在后台校验。
springmvc使用jsr - 303 (javaEE6规范的一部分)校验规范,springmvc使用的是Hibernate Validator(和Hibernate的ORM)
<强>二,步骤
强>
2.1引入Hibernate Validator
& lt; !——https://mvnrepository.com/artifact/org.hibernate/hibernate-validator——比; & lt; dependency> & lt; groupId> org.hibernate & lt; artifactId> hibernate-validator & lt; version> 5.4.1.Final & lt;/dependency>
2.2配置
& lt; !——校验器——比; & lt; bean id=把橹て鳌? 类=皁rg.springframework.validation.beanvalidation.LocalValidatorFactoryBean”比; & lt; !——校验器——比; & lt;属性名=" providerClass " value=" https://www.yisu.com/zixun/org.hibernate.validator.HibernateValidator "/比; & lt; !——指定校验使用的资源文件,如果不指定则默认使用类路径下的ValidationMessages。属性——比; & lt;属性名=" validationMessageSource " ref=" messageSource "/比; & lt;/bean> & lt; !——校验错误信息配置文件——比; & lt; bean id=" messageSource " 类=皁rg.springframework.context.support.ReloadableResourceBundleMessageSource”比; & lt; !——资源文件名——比; & lt;属性名=":"在 & lt; list> & lt; value>类路径:CustomValidationMessages & lt;/list> & lt;/property> & lt; !——资源文件编码格式——比; & lt;属性名=" fileEncodings " value=" https://www.yisu.com/zixun/utf-8 "/比; & lt; !——对资源文件内容缓存时间,单位秒——比; & lt;属性名=" cacheSeconds " value=" https://www.yisu.com/zixun/120 "/比; & lt;/bean> & lt; !——自定义webBinder——比; & lt; bean id=" customBinder " 类=皁rg.springframework.web.bind.support.ConfigurableWebBindingInitializer”比; & lt; !——使用转换器进行参数转——比; & lt;属性名=" conversionService " ref=" conversionService "/比; & lt; !——配置验证器——比; & lt;属性名="验证" ref="验证"/比; & lt; !——propertyEditorRegistrars用于属性编辑器——比; & lt; !——& lt;属性名=" propertyEditorRegistrars "比;& lt; list>& lt;裁判bean=" customPropertyEditor "/比;& lt;/list>& lt;/property>——比; & lt;/bean> & lt; !——注解适配器——比; & lt;豆 类=皁rg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”比; & lt; !——在webBindingInitializer中注入自定义属性编辑器,自定义转换器——比; & lt;属性名=" webBindingInitializer“ref=癱ustomBinder祝辞& lt;/property> & lt; !——加入json数据的消息转换器MappingJacksonHttpMessageConverter依赖杰克逊的包——比; & lt;属性名=癿essageconverter”比; & lt; list> & lt;豆 类=" org.springframework.http.converter.json.MappingJacksonHttpMessageConverter "祝辞& lt;/bean> & lt;/list> & lt;/property> & lt;/bean>
2.3创建CustomValidationMessages
在类路径下创建CustomValidationMessages。属性
#校验提示信息:还需要在java中配置 items.name.length.error=商品长度请限制在外墙面之间items.createtime.is.notnull=请输入商品生产日期
2.4校验规则
商品信息提交时校验,商品生产日期不能为空,商品名称长度在1到30字符之间
公开课项目{ 私人整数id;//商品名称的长度请限制在1到30个字符 @ (min=1, max=30,消息=" {items.name.length.error} ") 私人字符串名称; 私人浮动价格; 私人字符串图片;//请输入商品生产日期 @NotNull(消息=" {items.createtime.is.notnull}”) 私人createtime日期; 私人字符串细节; }
2.5捕获错误
需要修改控制器方法,在要校验的pojo前边加上@Validated,