牛骨文教育服务平台(让学习变的简单)
博文笔记

Java Validation

创建时间:2016-11-15 投稿人: 浏览次数:606
  1. pom.xml
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.2.4.Final</version>
</dependency>
  1. Person.java
import javax.validation.constraints.*;
import org.hibernate.validator.constraints.*;
import lombok.*;

@Data
public class Person implements Serializable {

    private int id;
    @Min(18)
    @Max(value=65)
    private int age;
    private String name;
    @Length(max=10)
    private String address;

    @Past
    private Date birthday;
    private BigDecimal weight;
    @Email
    private String email;
}
  1. 测试
import javax.validation.*;

public class TestPersonValidator {

    private static ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

    public static <T> List<String> validate(T t) {
        Validator validator = factory.getValidator();
        Set<ConstraintViolation<T>> constraintViolations = validator.validate(t);

        List<String> messageList = new ArrayList<String>();
        for (ConstraintViolation<T> constraintViolation : constraintViolations) {
            messageList.add(constraintViolation.getMessage());
        }
        return messageList;
    }

    public static void main(String[] args) {
        Person p = new Person();
        p.setAge(100);
        p.setEmail("qwer");
        p.setAddress("阿阿斯顿发斯蒂芬斯蒂芬阿斯顿发撒旦法撒旦法");
        List<String> validate = validate(p);
        for (String string : validate) {
            System.out.println(string.toString());
        }
    }
}

控制台输出:
2016-11-15 11:23:39 INFO [org.hibernate.validator.internal.util.Version] HV000001: Hibernate Validator 5.2.4.Final
长度需要在0和10之间
最大不能超过65
不是一个合法的电子邮件地址

这里写图片描述

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。