Я хочу сделать небольшую пользовательскую проверку с помощью 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()
метода. В этом случае вы сможете получить значение какObject
и привести к любому нужному типу.