Spring MVC JSR-303验证框架之Hibernate-Validator
2023-06-13 09:12:00 时间
对于 JSR 303 验证,目前有两个实现,一个是 Hibernate Validator,一个是 Apache BVal。本教程采用的是 Hibernate Validator,注意它和 Hibernate 无关,只是使用它进行数据验证。
1. 下载与安装 Hibernate Validator
@NotBlank:检查约束字符串是不是 null,以及被 trim 后的长度是否大于 0,只针对字符串,且会去掉前后空格。 @NotEmpty:检查约束元素是否为 null 或者是 empty。
@Size(min=,max=):验证对象(Array、Collection、Map、String)长度是否在给定的范围之内。 @Length(min=,max=):验证字符串长度是否在给定的范围之内。
被标注的值必须不大于约束中指定的最大值,这个约束的参数是一个通过 BigDecimal 定义的最大值的字符串表示,小数存在精度
被标注的值必须不小于约束中指定的最小值,这个约束的参数是一个通过 BigDecimal 定义的最小值的字符串表示,小数存在精度
对关联对象进行校验,如果关联对象是个集合或者数组,那么对其中的元素进行校验,如果是一个 map,则对其中的值部分进行校验
用户可以通过地址 https://sourceforge.net/projects/hibernate/files/hibernate-validator/ 下载 Hibernate Validator,本教程选择的是 hibernate-validator-4.3.2.Final-dist.zip。
首先将下载的压缩包解压,然后将 /hibernate-validator-4.3.2.Final/dist 目录下的 hibernate-validator-4.3.2.Final.jar 和 /hibernate-validator-4.3.2.Final/dist/lib/required 目录下的 jboss-logging-3.1.0.Final.jar、validation-api-1.0.0. GA.jar 复制到应用的 /WEB-INF/lib 目录下。
2. 配置属性文件与验证器如果将验证错误消息放在属性文件中,那么需要在配置文件中配置属性文件,并将属性文件与 Hibernate Validator 关联,具体配置代码如下:
!-- 配置消息属性文件 -- bean id= messageSource http://c.biancheng.net/spring/ target=_blank rel="noopener">Spring的 Valid 功能 -- mvc:annotation-driven conversion-service= conversionService validator= validator /3. 标注类型
JSR 303 不需要编写验证器,但需要利用它的标注类型在领域模型的属性上嵌入约束。
1)空检查@NotBlank:检查约束字符串是不是 null,以及被 trim 后的长度是否大于 0,只针对字符串,且会去掉前后空格。 @NotEmpty:检查约束元素是否为 null 或者是 empty。
示例如下:
@NotBlank(message= {goods.gname.required} ) //goods.gname.required为属性文件的错误代码
private String gname;
@Size(min=,max=):验证对象(Array、Collection、Map、String)长度是否在给定的范围之内。 @Length(min=,max=):验证字符串长度是否在给定的范围之内。
示例如下:
@Length(min=1,max=100)
private String gdescription;
被标注的值必须不大于约束中指定的最大值,这个约束的参数是一个通过 BigDecimal 定义的最大值的字符串表示,小数存在精度
被标注的值必须不小于约束中指定的最小值,这个约束的参数是一个通过 BigDecimal 定义的最小值的字符串表示,小数存在精度
对关联对象进行校验,如果关联对象是个集合或者数组,那么对其中的元素进行校验,如果是一个 map,则对其中的值部分进行校验
相关文章
- Spring Boot + minio 实现高性能存储服务,So Easy~!
- 简单介绍一下spring bean的生命周期_Spring bean的生命周期
- Github标星35K+超火的Spring Boot实战项目,附超全教程文档
- Spring中Bean的相关知识
- Spring JPA 查询的时候提示错 org.hibernate.TransientObjectException
- 终于有人把Spring Cloud+Nginx架构的主要组件给讲明白了
- 烧脑巨作,Spring Boot请求处理(常用参数注解使用)
- Java框架Spring入门-第一个spring项目
- 软件测试|Spring Boot 的 RESTful API 设计与实现
- 了解Spring
- jdbc、jpa、spring data jpa、hibernate、mybatis之间的关系及区别详解数据库
- Spring MVC文件下载
- hibernate与spring整合的配置文档问题详解编程语言
- spring的AOP(五)—-Spring AOP 编程(AspectJ )详解编程语言
- spring的AOP(四)—-Spring AOP 编程(Advisor)详解编程语言
- jbpm与spring hibernate struts整合详解编程语言
- Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例详解编程语言
- Hibernate hibernate.default_schema属性:指定默认的表空间
- spring架构利器:JFinal MySQL Spring(jfinalmysql)
- Hibernate+Spring+Struts扩展Struts