hibernate validator

Posted xiaomaha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate validator相关的知识,希望对你有一定的参考价值。

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.4.1.Final</version>
        </dependency>

        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>2.2.4</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>javax.el</artifactId>
            <version>2.2.4</version>
        </dependency>

 

@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 com.example.demo.model;

import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;

public class User {
    @NotEmpty
    private String name;
    @NotEmpty
    @Length(min=3,max=10)
    private String passWord;
    @Range(min = 18, max = 100)
    private int age;
    @Pattern(regexp="^[\\u7537\\u5973]+$",message="只能是男或者女")
    private String sex;
    
    // get set .......

}
package com.example.demo;

import java.util.Iterator;
import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import com.example.demo.model.User;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoTest {

    @Test
    public void test() {
        User u = new User();
        u.setName("");
        u.setPassWord("8888888888888888888888");
        u.setAge(88);
        u.setSex("人妖");
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        Set<ConstraintViolation<Object>> constraintViolations = validator.validate(u);// 验证某个对象,,其实也可以只验证其中的某一个属性的
        Iterator<ConstraintViolation<Object>> iter = constraintViolations.iterator();
        System.out.println("错误总数:" + constraintViolations.size());
        while (iter.hasNext()) {
            ConstraintViolation<Object> c = iter.next();
            System.out.println(c.getPropertyPath() + ":" + c.getMessage());
        }
    }

}

 

 

以上是关于hibernate validator的主要内容,如果未能解决你的问题,请参考以下文章

springboot使用hibernate validator校验

springboot使用hibernate validator校验

springboot使用hibernate validator校验

springboot使用hibernate validator校验

springboot使用hibernate validator校验方式

非WEB项目中引入Hibernate Validator