ฉันกำลังมองหาที่จะทำการตรวจสอบที่กำหนดเองเล็ก ๆ น้อย ๆ กับ javax.validation
JSR-303
ฉันมีสนาม และหากมีค่าบางอย่างถูกป้อนลงในช่องนี้ผมต้องการที่จะกำหนดให้สาขาอื่น ๆ null
ไม่กี่ไม่ได้
ฉันพยายามคิดออก ไม่แน่ใจว่าฉันจะเรียกสิ่งนี้ว่าอะไรเพื่อช่วยหาคำอธิบาย
ความช่วยเหลือใด ๆ จะได้รับการชื่นชม ฉันค่อนข้างใหม่สำหรับสิ่งนี้
ในขณะนี้ฉันกำลังคิดว่า Custom Constraint แต่ฉันไม่แน่ใจว่าจะทดสอบค่าของฟิลด์ที่อ้างอิงจากภายในคำอธิบายประกอบได้อย่างไร โดยทั่วไปฉันไม่แน่ใจว่าจะเข้าถึงวัตถุพาเนลจากคำอธิบายประกอบได้อย่างไร
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;
}
}
}
มันpanel.status.getValue();
ทำให้ฉันมีปัญหา .. ไม่แน่ใจว่าจะทำสำเร็จได้อย่างไร
Object
) ในกรณีนี้คุณไม่จำเป็นต้องใช้การสะท้อนเพื่อรับค่า แต่ในกรณีนี้ตัวตรวจสอบความถูกต้องจะกลายเป็นแบบทั่วไปน้อยกว่า 2) ใช้BeanWrapperImp
จาก Spring Framework (หรือไลบรารีอื่น ๆ ) และgetPropertyValue()
วิธีการ ในกรณีนี้คุณจะสามารถรับค่าเป็นObject
และส่งเป็นประเภทใดก็ได้ที่คุณต้องการ