使用自定义实体验证程序添加字段错误

时间:2013-12-04 14:03:35

标签: java validation

在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;
    }
}

0 个答案:

没有答案