У меня проблема с проверкой некоторых компонентов.
По сути, у меня есть форма, в которой пользователи Интернета могут создать новый профиль, и они должны ввести свое имя пользователя там.
Я хочуподтвердите имя пользователя в отношении:
- Длина
- Шаблон
- Если имя пользователя уже существует
Для маркера 3 я написал свойсобственный пользовательский валидатор @UserExists.Проблема в том, что я не хочу запускать этот валидатор, если какой-либо из первых двух валидаторов потерпит неудачу.
Я обнаружил, что использование @GroupSequence в моём валидаторе UserExists помогает применительно к последовательности, ноJSF все равно вызовет мой валидатор, если один из других валидаторов сообщит, что введенные данные неверны.Могу ли я как-нибудь проверить, не сработал ли уже один из других валидаторов?
Вот свойство, которое я хотел проверить:
@Size(min = 3, max = 20)
@Pattern(regexp = "[A-Za-z]+[A-Za-z0-9]*")
@UserExists(message = "User already exists")
private String username;
Пользовательский валидатор имеет следующие атрибуты:
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = UserExistsValidator.class)
@GroupSequence({Size.class, Pattern.class})
public @interface UserExists