在java中工作,我的班级有一些自定义验证器:我不能单独验证每个字段,因为我有一些条件,如“if'A',那么B不能为null”。
在这种情况下,我希望验证器能够将其作为FieldError分配给字段B.是否有一种简单的方法可以做到这一点?我的验证员大多看起来像这样:
@Documented
@Constraint(validatedBy = TicketingLinkTextValidator.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidateTicketingLinkText {
String message() default
"Ticketing link text must be entered in all languages if ticketing is enabled";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
public static class TicketingLinkTextValidator implements ConstraintValidator<ValidateTicketingLinkText,
TicketingInformation> {
@Override
public void initialize(ValidateTicketingLinkText constraintAnnotation) {
}
@Override
public boolean isValid(TicketingInformation ticketingInformation, ConstraintValidatorContext context) {
if (!ticketingInformation.ticketsAvailable) {
return true;
}
for (Language language : ticketingInformation.getText().keySet()) {
if (StringUtils.isBlank(ticketingInformation.getText().get(language).getTicketingLinkText())) {
return false;
}
}
return true;
}
}