1.导入hibernateValidator jar包
2.创建表单对象
package com.springmvc.hibernateValidator;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;
public class User {
/*
* @Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
*
*
*
*
* message属性 验证失败提示的信息
*
*/
//非 "" 验证
@NotEmpty(message="用户名不能为空")
private String name;
/*
* 范围验证
* max 最大值
* min 最小值
*/
@Length(max=10,min=6,message="密码在 6-10 之间")
private String password;
//最小值
@Min(value=18,message="年龄必须 18 以上")
private int age;
//email 验证
@Email
private String email;
//正则验证
@Pattern(regexp="^[150[0-9]+]{11}",message="电话必须是 150 开头")
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
3.手工测试验证
package com.springmvc.hibernateValidator;
import java.util.Iterator;
import java.util.Set;
import javax.validation.Configuration;
import javax.validation.ConstraintViolation;
import javax.validation.Valid;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import org.apache.log4j.Logger;
import org.hibernate.validator.HibernateValidatorFactory;
import org.junit.Test;
import com.sun.org.apache.xml.internal.resolver.helpers.Debug;
public class TestHibernateValidator {
private Logger rootLogger = Logger.getLogger(TestHibernateValidator.class);
@Test
public void TestValidate() {
//通过 Validation 构造 DefaultValidatorFactory 工厂
ValidatorFactory hvf = Validation.buildDefaultValidatorFactory();
//通过 ValidatorFactory 获取 validate
Validator validator= hvf.getValidator();
//创建一个待验证 user 实例 为其赋值
User user = new User();
user.setAge(99);
user.setEmail("df@dfdfqq.com");
user.setName("");
user.setPassword("1111111");
user.setPhone("15011111111");
//通过 Validator 验证 user 实例 返回 ConstraintViolation<User> 集合
Set<ConstraintViolation<User>> cvs = validator.validate(user);
//获取 迭代器
Iterator<ConstraintViolation<User>> ite = cvs.iterator();
while(ite.hasNext()){
ConstraintViolation<User> cv = ite.next();
//获取 验证错误 信息 message
rootLogger.debug(cv.getMessage());
//获取错误的字段名称
rootLogger.debug(cv.getPropertyPath());
/*
rootLogger.debug("-->" +cv.getConstraintDescriptor());
rootLogger.debug(cv.getInvalidValue());
rootLogger.debug(cv.getLeafBean());
rootLogger.debug(cv.getMessageTemplate());
rootLogger.debug(cv.getConstraintDescriptor());
rootLogger.debug("-->" +cv.getRootBean());
*/
}
}
}