Saya ingin melakukan sedikit validasi khusus dengan JSR-303 javax.validation
.
Saya memiliki lapangan. Dan jika nilai tertentu dimasukkan ke dalam bidang ini, saya ingin meminta beberapa bidang lainnya tidak null
.
Saya mencoba untuk mencari tahu ini. Tidak yakin persis apa yang saya sebut ini untuk membantu menemukan penjelasan.
Bantuan apa pun akan dihargai. Saya cukup baru dalam hal ini.
Saat ini saya sedang memikirkan Batasan Kustom. Tapi saya tidak yakin bagaimana cara menguji nilai field dependen dari dalam anotasi. Pada dasarnya saya tidak yakin bagaimana mengakses objek panel dari anotasi.
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;
}
}
}
Ini panel.status.getValue();
memberi saya masalah .. tidak yakin bagaimana mencapai ini.
Object
). Dalam hal ini, Anda bahkan tidak perlu menggunakan refleksi untuk mendapatkan nilai tetapi dalam kasus ini validator menjadi kurang umum 2) gunakanBeanWrapperImp
dari Spring Framework (atau pustaka lain) dangetPropertyValue()
metodenya. Dalam hal ini Anda akan bisa mendapatkan nilai asObject
dan cast ke tipe apa pun yang Anda butuhkan.