Các Annotation Kiểm Tra Giá Trị Trong Java: Giá Trị, Phạm Vi, Độ Dài và Định Dạng

Phụ thuộc Maven

Cách 1: Thêm thư viện validation-api

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>
    

Cách 2: Thêm thư viện hibernate-validator

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>
    

Kiểm tra giá trị

@Null

Yêu cầu phần tử được đánh dấu phải là null

@Null(message = "Giá trị phải là null")
private String tenNguoiDung;
    

@NotNull

Yêu cầu phần tử được đánh dấu không được là null

@NotNull(message = "Giá trị không được là null")
private String tenNguoiDung;
    

@NotBlank

Kiểm tra giá trị không rỗng (không phải null, sau khi loại bỏ khoảng trắng đầu và cuối độ dài không phải 0), và kiểu dữ liệu phải là String

@NotBlank(message = "Giá trị không được rỗng")
private String tenNguoiDung;
    

@NotEmpty

Kiểm tra giá trị không phải null và không rỗng (độ dài chuỗi không phải 0, kích thước collection không phải 0), và kiểu dữ liệu phải là String

@NotEmpty(message = "Giá trị không được null và không được rỗng")
private String tenNguoiDung;
    

@AssertTrue

Yêu cầu phần tử được đánh dấu phải là true, và kiểu dữ liệu là boolean

@AssertTrue(message = "Giá trị phải là true")
private boolean trangThai;
    

@AssertFalse

Yêu cầu phần tử được đánh dấu phải là false, và kiểu dữ liệu là boolean

@AssertFalse(message = "Giá trị phải là false")
private boolean trangThai;
    

Kiểm tra phạm vi

@Min

Yêu cầu giá trị của phần tử phải lớn hơn hoặc bằng giá trị tối thiểu được chỉ định, và kiểu dữ liệu là int, long, float, double

@Min(value = 18, message = "Giá trị phải lớn hơn hoặc bằng 18")
private int tuoi;
    

@Max

Yêu cầu giá trị của phần tử phải nhỏ hơn hoặc bằng giá trị tối đa được chỉ định, và kiểu dữ liệu là int, long, float, double

@Max(value = 65, message = "Giá trị phải nhỏ hơn hoặc bằng 65")
private int tuoi;
    

@DecimalMin

Kiểm tra giá trị của phần tử phải lớn hơn hoặc bằng giá trị được chỉ định bởi @DecimalMin, và kiểu dữ liệu là BigDecimal

@DecimalMin(value = "150.00", message = "Giá trị phải lớn hơn hoặc bằng 150.00")
private BigDecimal chieuCao;
    

@DecimalMax

Kiểm tra giá trị của phần tử phải nhỏ hơn hoặc bằng giá trị được chỉ định bởi @DecimalMax, và kiểu dữ liệu là BigDecimal

@DecimalMax(value = "300.00", message = "Giá trị phải nhỏ hơn hoặc bằng 300.00")
private BigDecimal chieuCao;
    

@Range

Kiểm tra giá trị của phần tử phải nằm trong khoảng giá trị tối thiểu và tối đa được chỉ định, và kiểu dữ liệu là BigDecimal, BigInteger, CharSequence, byte, short, int, long

@Range(min = 18, max = 65, message = "Giá trị phải nằm trong khoảng từ 18 đến 65")
private int tuoi;
    

@Past

Yêu cầu phần tử được đánh dấu phải là một thời điểm trong quá khứ, và kiểu dữ liệu là java.util.Date

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Past(message = "Phải là thời điểm trong quá khứ")
private Date ngayTao;
    

@Future

Yêu cầu phần tử được đánh dấu phải là một thời điểm trong tương lai, và kiểu dữ liệu là java.util.Date

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Future(message = "Phải là thời điểm trong tương lai")
private Date ngayHetHan;
    

Kiểm tra độ dài

@Size

Yêu cầu độ dài của phần tử phải nằm trong khoảng được chỉ định, và kiểu dữ liệu là String, Array, List, Map

@Size(min = 7, max = 11, message = "Độ dài phải từ 7 đến 11 ký tự")
private String soDienThoai;
    

@Length

Kiểm tra độ dài của giá trị phần tử phải nằm trong khoảng min và max, và kiểu dữ liệu là String

@Length(min = 8, max = 20, message = "Độ dài phải từ 8 đến 20 ký tự")
private String matKhau;
    

Kiểm tra định dạng

@Digits

Kiểm tra số chữ số nguyên và số chữ số thập phân của giá trị phần tử, và kiểu dữ liệu là float, double, BigDecimal

@Digits(integer = 3, fraction = 2, message = "Tối đa 3 chữ số nguyên và 2 chữ số thập phân")
private BigDecimal giaTri;
    

@Pattern

Yêu cầu phần tử được đánh dấu phải khớp với biểu thức chính quy được chỉ định, và kiểu dữ liệu là String

@Pattern(regexp = "^0[0-9]{9}$", message = "Phải là số điện thoại 10 số bắt đầu bằng 0")
private String soDienThoai;
    

@Email

Kiểm tra giá trị của phần tử phải là định dạng email, có thể tùy chỉnh định dạng email thông qua regexp và flag, kiểu dữ liệu là String

@Email(message = "Phải là định dạng email hợp lệ")
private String diaChiEmail;
    

Thẻ: Java validation annotation Bean Validation hibernate-validator JSR 380

Đăng vào ngày 11 tháng 6 lúc 01:53