Я прагну зробити невелику власну перевірку з JSR-303 javax.validation
.
У мене є поле. І якщо в це поле введено певне значення, я хочу вимагати, щоб деякі інші поля не були null
.
Я намагаюся це зрозуміти. Не знаю точно, як би я це назвав, щоб допомогти знайти пояснення.
Будь-яка допомога буде вдячна. Я досить новачок у цьому.
На даний момент я думаю про спеціальне обмеження. Але я не впевнений, як перевірити значення залежного поля всередині анотації. В основному я не впевнений, як отримати доступ до об’єкта панелі з анотації.
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()
методу. У цьому випадку ви зможете отримати значення asObject
та передати будь-який тип, який вам потрібен.