аннотации и регулярные выражения - PullRequest
8 голосов
/ 02 апреля 2012

Мне нужно сделать проверку электронной почты с помощью аннотации + регулярное выражение. Я пытался использовать следующее:

@NotNull
@Pattern(regexp=".+@.+\\.[a-z]+")
private String email;

Однако я не знаю, как напечатать сообщение об ошибке, если у меня неправильный адрес электронной почты в поле электронной почты. Есть идеи?

Ответы [ 2 ]

13 голосов
/ 02 апреля 2012

Сначала вы должны добавить атрибут message к аннотации Pattern.Предположим, что ваша почтовая переменная является частью некоторого класса User:

class User{
@NotNull
@Pattern(regexp=".+@.+\\.[a-z]+", message="Invalid email address!")
private String email;
}

Затем вы должны определить валидатор:

ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
Validator validator = vf.getValidator();
User user = new User();
user.setEmail("user@gmail.com");
Set<ConstraintViolation<User>> constraintViolations = validator
        .validate(user);

Затем найдите ошибки валидации.

for (ConstraintViolation<Object> cv : constraintViolations) {
      System.out.println(String.format(
          "Error here! property: [%s], value: [%s], message: [%s]",
          cv.getPropertyPath(), cv.getInvalidValue(), cv.getMessage()));
}
0 голосов
/ 21 августа 2017

Как указано в комментариях выше:

@NotNull
@Email(message = "This email address is invalid")
private String email;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...