Estoy buscando hacer una pequeña validación personalizada con JSR-303 javax.validation
.
Tengo un campo. Y si se ingresa un cierto valor en este campo, quiero requerir que algunos otros campos no lo estén null
.
Estoy tratando de resolver esto. No estoy seguro de cómo llamaría esto para ayudar a encontrar una explicación.
Cualquier ayuda sería apreciada. Soy bastante nuevo en esto.
Por el momento estoy pensando en una restricción personalizada. Pero no estoy seguro de cómo probar el valor del campo dependiente desde dentro de la anotación. Básicamente, no estoy seguro de cómo acceder al objeto del panel desde la anotación.
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;
}
}
}
Es lo panel.status.getValue();
que me está dando problemas ... no estoy seguro de cómo lograr esto.
Object
). En este caso, ni siquiera necesita usar la reflexión para obtener los valores, pero en este caso el validador se vuelve menos genérico 2) useBeanWrapperImp
de Spring Framework (u otras bibliotecas) y sugetPropertyValue()
método. En este caso, podrá obtener un valorObject
y convertir a cualquier tipo que necesite.