изменение сообщения об ошибке в пользовательском валидаторе - PullRequest
0 голосов
/ 19 сентября 2019

Я написал собственный массив строк. Validator:

@Documented
@Constraint(validatedBy = KeyArrayValidator.class)
@Target( { ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface KeyArrayValid {
    String message() default "array is null, array is empty or there are wrong keys"; 
    Class<?>[] groups() default { };
    Class<? extends Payload>[] payload() default { };
}

public class KeyArrayValidator implements ConstraintValidator<KeyArrayValid, String[]> {
    @Override
    public boolean isValid(String[] value, ConstraintValidatorContext context) {
        boolean valid = false;
        if (value != null && value.length > 0) {
            valid = true;
            for (String oneVal: value) {
                if (!oneVal.matches("^([A-Za-z0-9]+[\\s,.;:?!]*)+$")) {
                    valid = false;
                    break;
                }
            }
        }
        return valid;
    }
}

Он отлично справляется со своей задачей, но я хотел бы, чтобы он генерировал более конкретные сообщения, например, «Ключ {неправильный ключ здесь} содержит неправильные символы»".

Возможно ли это?И если да, то как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...