Javad的Validator框架使用

原创 2015年01月29日 16:01:41

    结合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框架概述

Java EE 6 提出了 Bean Validation 规范,使用注解的方式对 Java Bean 进行约束验证,不局限于某一层次或者某一编程模型,灵活易用。下边将向您系统的介绍该规范的各种特性。...
  • tianwei7518
  • tianwei7518
  • 2015年01月29日 15:48
  • 2748

使用Validator做SpringMVC的验证框架 - 配置SpringMVC环境

让我们用Validator框架来给SpringMVC实现验证功能吧 Validator框架源码地址:https://github.com/devefx/validator 完成这一章教程的要求 熟...
  • devefx
  • devefx
  • 2016年06月02日 11:28
  • 3951

使用Validator做SpringMVC的验证框架 - 使用Validator

前面一章我们已经搭好SpringMVC的环境了。现在开始学习Validator框架的使用吧 Validator框架源码地址:https://github.com/devefx/validator ...
  • devefx
  • devefx
  • 2016年06月02日 15:35
  • 3724

《使用Validator做SpringMVC的验证框架》教程源码(完整版)

  • 2016年06月06日 16:35
  • 12KB
  • 下载

《使用Validator做SpringMVC的验证框架》教程源码

  • 2016年06月03日 14:29
  • 9KB
  • 下载

validator验证框架的简单使用(struts)

  • 2011年02月07日 14:27
  • 17KB
  • 下载

基于hibernate_validator的异步表单校验框架使用说明

表单校验框架使用说明V 0.3Ivan 2016.02.17   目录 一、引入依赖 3 1.Maven方式 3 2.Jar方式 3 二、为实体类添加校验注解 3 1.编写...
  • a171324784
  • a171324784
  • 2016年02月17日 13:48
  • 1602

详解Struts中Validator验证框架的使用

Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框...
  • pcdaan
  • pcdaan
  • 2011年04月12日 23:32
  • 571

struts1.2的Validator验证框架使用

Validator采用基于两个xml文件的方式来配置验证规则,分别为validation.xml,validator-rules.xml。 在struts应用中,需放到web-inf目录下。 1....
  • pannhann
  • pannhann
  • 2012年07月24日 14:55
  • 606

Hibernate-validator校验框架使用

可以有两种使用方法: 第一种:在要检验的Dto对象之前加@Valid注解,这种方法必须配合BindingResult参数一起使用,否则验证不通过就会返回400,并且抛出"org.springframe...
  • houhow
  • houhow
  • 2017年03月09日 09:59
  • 2493
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Javad的Validator框架使用
举报原因:
原因补充:

(最多只允许输入30个字)