Javad的Validator框架使用
来源:互联网 发布:零点网络电视 编辑:程序博客网 时间:2024/05/22 07:55
结合hibernate-validator(除此之外Spring Framework自带的validation,struts validation等),说明Validator框架使用,引入jar包:
<dependency><groupId>org.glassfish</groupId><artifactId>javax.el</artifactId><version>3.0.0</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.1.3.Final</version></dependency>定义实体类:
Course:
package cn.slimsmart.java.demo.valid;import javax.validation.constraints.NotNull;public class Course {@NotNull(message="课程名不能为空")private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}User:
package cn.slimsmart.java.demo.valid;import javax.validation.Valid;import javax.validation.constraints.Max;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;import javax.validation.constraints.Pattern;import javax.validation.constraints.Size;import org.hibernate.validator.constraints.Email;public class User {@NotNull(message="姓名不能为空")@Size(min=1,max=4,message="姓名长度介于1和4个字符")private String name;@NotNull(message="年龄不能为空")@Min(value=18,message="年龄不能小于18")@Max(value=70,message="年龄不能大于70")private int age;@Email(message="邮箱地址格式不正确")private String mail;@Pattern(regexp="[男女]",message="性别只能为男或女")private String sex;@Valid //标记course也做校验private Course course;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getMail() {return mail;}public void setMail(String mail) {this.mail = mail;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Course getCourse() {return course;}public void setCourse(Course course) {this.course = course;}}注解说明:
Bean Validation 中内置的 constraint
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式
Hibernate Validator 附加的 constraint
@NotBlank(message =) 验证字符串非null,且长度必须大于0
@Email 被注释的元素必须是电子邮箱地址
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range(min=,max=,message=) 被注释的元素必须在合适的范围内
测试类:
package cn.slimsmart.java.demo.valid;import java.util.Set;import javax.validation.ConstraintViolation;import javax.validation.Validation;import javax.validation.Validator;import javax.validation.ValidatorFactory;public class ValidTest {public static void main(String[] args) {ValidatorFactory factory = Validation.buildDefaultValidatorFactory();Validator validator = factory.getValidator();User user = new User();user.setAge(12);user.setMail("abcdddd");user.setName("测试测试测试");user.setSex("A");user.setCourse(new Course());Set<ConstraintViolation<User>> constraintViolations = validator.validate(user);for (ConstraintViolation<User> constraintViolation : constraintViolations) {System.err.println(constraintViolation.getPropertyPath()+":"+constraintViolation.getMessage());}}}运行输出:
course.name:课程名不能为空mail:邮箱地址格式不正确sex:性别只能为男或女name:姓名长度介于1和4个字符age:年龄不能小于18
- Javad的Validator框架使用
- Javad的Validator框架概述
- Validator验证框架的使用
- Struts Validator 框架的使用
- Struts Validator 框架的使用
- 使用Validator做SpringMVC的验证框架 - 使用Validator
- 使用Validator做SpringMVC的验证框架 - Validator前端验证
- Struts2使用validator验证框架的问题
- struts1.2的Validator验证框架使用
- Struts1.x的validator框架使用
- struts1.2的Validator验证框架使用
- springMVC Hibernate Validator验证框架的使用
- 如何使用 Laravel 框架的 validator
- 如何使用Validator框架
- validator框架简单使用
- javad 的Arrays类
- Struts中使用Validator框架
- Validator 验证框架使用心得
- 如何在Apache中使用PHP处理PHP文件
- MongoDB架构篇Master-Slave
- uva 11520 Fill the Square(枚举)
- SG之UIView基本动画
- MTK Camera 开机启动流程
- Javad的Validator框架使用
- quartz 学习二
- Hibernate 第三课
- 获取Sharepoint的hostContext的Urls
- windows 2003 64位系统php运行报错:1%不是有效的win32应用程序解决
- Android中的一个TextView中的字体设置不同大小
- TCP/IP 详解卷一 - 第6、7、8章 ICMP协议和ping、traceroute程序
- Cocos2dx(3.3)绑定lua
- ios的appicon和启动图片