Tôi đang tìm cách xác thực tùy chỉnh nhỏ với JSR-303 javax.validation
.
Tôi có một cánh đồng. Và Nếu một giá trị nhất định được nhập vào trường này, tôi muốn yêu cầu một vài trường khác không được nhập null
.
Tôi đang cố gắng tìm ra điều này. Không chắc chính xác tôi sẽ gọi điều này là gì để giúp tìm ra lời giải thích.
Bất kỳ trợ giúp sẽ được đánh giá cao. Tôi khá mới mẻ với điều này.
Hiện tại, tôi đang nghĩ đến một Ràng buộc Tùy chỉnh. Nhưng tôi không chắc chắn về cách kiểm tra giá trị của trường phụ thuộc từ bên trong chú thích. Về cơ bản, tôi không chắc cách truy cập đối tượng bảng điều khiển từ chú thích.
public class StatusValidator implements ConstraintValidator<NotNull, String> {
@Override
public void initialize(NotNull constraintAnnotation) {}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if ("Canceled".equals(panel.status.getValue())) {
if (value != null) {
return true;
}
} else {
return false;
}
}
}
Đó là panel.status.getValue();
rắc rối cho tôi .. không biết làm thế nào để hoàn thành việc này.
Object
). Trong trường hợp này, bạn thậm chí không cần sử dụng phản chiếu để nhận các giá trị nhưng trong trường hợp này trình xác thực trở nên ít chung chung hơn 2) sử dụngBeanWrapperImp
từ Spring Framework (hoặc các thư viện khác) vàgetPropertyValue()
phương thức của nó . Trong trường hợp này, bạn sẽ có thể nhận được một giá trịObject
và chuyển thành bất kỳ kiểu nào bạn cần.