zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Spring MVC JSR-303验证框架之Hibernate-Validator

Springhibernate框架MVC 验证 validator 303 jsr
2023-06-13 09:12:00 时间
对于 JSR 303 验证,目前有两个实现,一个是 Hibernate Validator,一个是 Apache BVal。本教程采用的是 Hibernate Validator,注意它和 Hibernate 无关,只是使用它进行数据验证。

1. 下载与安装 Hibernate Validator

用户可以通过地址 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;

2)boolean 检查
@Size(min=,max=):验证对象(Array、Collection、Map、String)长度是否在给定的范围之内。 @Length(min=,max=):验证字符串长度是否在给定的范围之内。

示例如下:

@Length(min=1,max=100)
private String gdescription;

4)日期检查
被标注的值必须不大于约束中指定的最大值,这个约束的参数是一个通过 BigDecimal 定义的最大值的字符串表示,小数存在精度
被标注的值必须不小于约束中指定的最小值,这个约束的参数是一个通过 BigDecimal 定义的最小值的字符串表示,小数存在精度
对关联对象进行校验,如果关联对象是个集合或者数组,那么对其中的元素进行校验,如果是一个 map,则对其中的值部分进行校验