所需jar包
下载:提取码:fc9z
SpringMVC不自带数据校验,需要借助Hibernate,需要如下jar包
hibernate-validator-6.0.7.Final.jar,slf4j-api-1.6.1.jar,slf4j-log4j12.jar,validation-api-2.0.1.Final.jar
hibernate-validator-6.0.7.Final.jar,validation-api-2.0.1.Final.jar:Hibernate官网下载地址http://hibernate.org,选择validator,在release选择版本,然后下载。
slf4j-api-1.6.1.jar,slf4j-log4j12.jar:官网下载地址http://www.java2s.com/Code/,选择jar,筛选s,选择Catalogs.html,点击search搜索,找到slf4j-api,slf4j-log4j12,然后点击search搜索,选择所需版本,再点search搜索,在Related examples in the same category之上有一个下载链接
JSR 303校验框架介绍
在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与相应的域模型进行绑定。
Bean Validation 为 JavaBean 验证定义了相应的元数据模型和 API。缺省的元数据是 Java Annotations,通过使用 XML 可以对原有的元数据信息进行覆盖和扩展。在应用程序中,通过使用 Bean Validation 或是你自己定义的 constraint,例如 @NotNull, @Max, @ZipCode, 就可以确保数据模型(JavaBean)的正确性。constraint 可以附加到字段,getter 方法,类或者接口上面。对于一些特定的需求,用户可以很容易的开发定制化的 constraint。Bean Validation 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回。
JSR303校验框架注解类
- @NotNull 注解元素必须是非空
- @Null 注解元素必须是空
- @Digits 验证数字构成是否合法
- @Future 验证是否在当前系统时间之后
- @Past 验证是否在当前系统时间之前
- @Max 验证值是否小于等于最大指定整数值
- @Min 验证值是否大于等于最小指定整数值
- @Pattern 验证字符串是否匹配指定的正则表达式
- @Size 验证元素大小是否在指定范围内
- @DecimalMax 验证值是否小于等于最大指定小数值
- @DecimalMin 验证值是否大于等于最小指定小数值
- @AssertTrue 被注释的元素必须为true
- @AssertFalse 被注释的元素必须为false
Hibernate Validator附加的 constraint
- @Email 被注释的元素必须是电子邮箱地址
- @Length 被注释的字符串的大小必须在指定的范围内
- @NotEmpty 被注释的字符串的必须非空
- @NotBlank 被注释的字符串必须非空,且长度需要大于0
- @Range 被注释的元素必须在合适的范围内