Tôi có trình xác thực bean tùy chỉnh để kiểm tra xem một trường nhất định trên thực thể có duy nhất cho một số điều kiện hay không. Nếu xác thực không thành công, thông báo phải bao gồm một trường (ví dụ: ID) của thực thể đã tồn tại. Vì vậy, ví dụ: thông báo phải là:Nội suy thông số xác thực cụ thể trong thông báo xác thực đậu
"Product 42 already has such a value defined, choose a unique value."
Điều này có thể sử dụng xác thực bean không?
AFAICS, định dạng tin nhắn có thể bao gồm các thông số, chẳng hạn như:
"Length must be between {min} and {max}."
Nhưng điều này chỉ có thể tham khảo các "tĩnh" thuộc tính của chú thích xác nhận, trong trường hợp này:
@Size(min=1, max=16)
private String name;
Trong trường hợp của tôi, giá trị chỉ được biết trong số isValid
của trình xác thực tùy chỉnh của tôi.
Vấn đề là tôi không muốn xây dựng thông báo cuối cùng trong trình xác thực, chỉ là định dạng (cho bản dịch) và các tham số. Nhưng tôi đoán tôi phải bản địa hóa thông báo bên trong trình xác nhận. – robinst
Tôi đã đăng giải pháp mà chúng tôi đã kết thúc bằng một câu trả lời khác. Nhưng tôi nghĩ câu trả lời của bạn cho phép các thông báo lỗi cụ thể hơn, ngay cả khi nội địa hóa phải được thực hiện bên trong trình xác thực, tôi đã chấp nhận nó. – robinst