easypoi实战:(一)应用hibernate-validation来验证excel的导入数据合法性

慕志泽
2023-12-01

一、hibernate-validation验证框架常见注解

@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=)  被注释的元素必须在合适的范围内
@URL(protocol=,host,port)//检查是否是一个有效的URL,如果提供了protocol,host等,则该URL还需满足提供的条件
 

二、easypoi定义的pojo类对验证的应用例子:

import java.util.Date;

import javax.validation.constraints.Max;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.NotBlank;

import cn.afterturn.easypoi.excel.annotation.Excel;

public class User {
    @Excel(name = "id")
    @NotBlank(message = "该字段不能为空")
    private String id;

    @Excel(name = "姓名")
    @Pattern(regexp = "[\\u4E00-\\u9FA5]{2,5}", message = "姓名中文2-5位")
    private String name;

    @Max(value=20)
    @Excel(name = "年龄")
    private Integer age;

    @Excel(name = "生日", importFormat = "yyyy-MM-dd")
    private Date birthday;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    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 Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

}

 类似资料: