Mô hình Xác thực Bean được hỗ trợ bởi các ràng buộc dưới dạng chú thích được đặt trên một trường, phương thức hoặc lớp của thành phần JavaBeans, chẳng hạn như một bean được quản lý
Các ràng buộc có thể được tích hợp sẵn hoặc do người dùng xác định. Các ràng buộc do người dùng định nghĩa được gọi là các ràng buộc tùy chỉnh. Một số ràng buộc tích hợp có sẵn trong gói
@AssertTrue boolean isActive;6. liệt kê tất cả các ràng buộc tích hợp. Xem thông tin về cách tạo ràng buộc tùy chỉnh
Bảng 21-1 Các ràng buộc xác thực Bean tích hợp
ConstraintMô tả Ví dụ@AssertTrue boolean isActive;7
Giá trị của trường hoặc thuộc tính phải là
@AssertTrue boolean isActive;8
@AssertFalse boolean isUnsupported;
@AssertTrue boolean isActive;9
Giá trị của trường hoặc thuộc tính phải là
@DecimalMax["30.00"] BigDecimal discount;0
@AssertTrue boolean isActive;
@DecimalMax["30.00"] BigDecimal discount;1
Giá trị của trường hoặc thuộc tính phải là giá trị thập phân nhỏ hơn hoặc bằng số trong thành phần giá trị
@DecimalMax["30.00"] BigDecimal discount;
@DecimalMax["30.00"] BigDecimal discount;2
Giá trị của trường hoặc thuộc tính phải là giá trị thập phân lớn hơn hoặc bằng số trong thành phần giá trị
@AssertTrue boolean isActive;0
@DecimalMax["30.00"] BigDecimal discount;3
Giá trị của trường hoặc thuộc tính phải là một số trong một phạm vi được chỉ định. Phần tử
@DecimalMax["30.00"] BigDecimal discount;4 chỉ định các chữ số nguyên tối đa cho số và phần tử
@DecimalMax["30.00"] BigDecimal discount;5 chỉ định các chữ số phân số tối đa cho số
@AssertTrue boolean isActive;4
@DecimalMax["30.00"] BigDecimal discount;6
Giá trị của trường hoặc thuộc tính phải là một ngày trong tương lai
@AssertTrue boolean isActive;6
@DecimalMax["30.00"] BigDecimal discount;7
Giá trị của trường hoặc thuộc tính phải là một giá trị nguyên nhỏ hơn hoặc bằng số trong thành phần giá trị
@AssertTrue boolean isActive;8
@DecimalMax["30.00"] BigDecimal discount;8
Giá trị của trường hoặc thuộc tính phải là một giá trị số nguyên lớn hơn hoặc bằng số trong thành phần giá trị
@AssertTrue boolean isActive;0
@DecimalMax["30.00"] BigDecimal discount;9
Giá trị của trường hoặc thuộc tính không được rỗng
@AssertTrue boolean isActive;2
@AssertTrue boolean isActive;00
Giá trị của trường hoặc thuộc tính phải là null
@AssertTrue boolean isActive;4
@AssertTrue boolean isActive;01
Giá trị của trường hoặc thuộc tính phải là một ngày trong quá khứ
@AssertTrue boolean isActive;0
@AssertTrue boolean isActive;02
Giá trị của trường hoặc thuộc tính phải khớp với biểu thức chính quy được xác định trong phần tử
@AssertTrue boolean isActive;03
@AssertTrue boolean isActive;1
@AssertTrue boolean isActive;04
Kích thước của trường hoặc thuộc tính được ước tính và phải khớp với các ranh giới đã chỉ định. Nếu trường hoặc thuộc tính là
@AssertTrue boolean isActive;05, thì kích thước của chuỗi được đánh giá. Nếu trường hoặc thuộc tính là một
@AssertTrue boolean isActive;06, kích thước của
@AssertTrue boolean isActive;06 được đánh giá. Nếu trường hoặc thuộc tính là một
@AssertTrue boolean isActive;08, kích thước của
@AssertTrue boolean isActive;08 được đánh giá. Nếu trường hoặc thuộc tính là một mảng, kích thước của mảng được đánh giá. Sử dụng một trong các phần tử
@AssertTrue boolean isActive;40 hoặc
@AssertTrue boolean isActive;41 tùy chọn để chỉ định ranh giới
@AssertTrue boolean isActive;2
Trong ví dụ sau, một ràng buộc được đặt trên một trường bằng cách sử dụng ràng buộc
@DecimalMax["30.00"] BigDecimal discount;9 tích hợp
@AssertTrue boolean isActive;3
Bạn cũng có thể đặt nhiều hơn một ràng buộc trên một đối tượng thành phần JavaBeans. Ví dụ: bạn có thể đặt một ràng buộc bổ sung cho kích thước trường trên các trường
@AssertTrue boolean isActive;43 và
@AssertTrue boolean isActive;44
@AssertTrue boolean isActive;4
Ví dụ sau đây cho thấy một phương thức có ràng buộc do người dùng xác định để kiểm tra mẫu địa chỉ email được xác định trước, chẳng hạn như tài khoản email công ty
@AssertTrue boolean isActive;5
Đối với ràng buộc tích hợp sẵn, có sẵn triển khai mặc định. Ràng buộc tùy chỉnh hoặc do người dùng xác định cần triển khai xác thực. Trong ví dụ trước, ràng buộc tùy chỉnh
@AssertTrue boolean isActive;45 cần một lớp triển khai
Bất kỳ lỗi xác thực nào đều được xử lý một cách duyên dáng và có thể được hiển thị bằng thẻ
@AssertTrue boolean isActive;46
Bất kỳ bean được quản lý nào có chứa chú thích Xác thực Bean sẽ tự động nhận các ràng buộc xác thực được đặt trên các trường trên trang web của ứng dụng JavaServer Faces