Java / Spring MVC 3 проверка адреса электронной почты

У меня есть бэкэнд Java с Spring MVC, и я использую проверку таким образом в моем доменном объекте для адреса электронной почты:

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
...
@NotNull
@Size(min = 1, max = 100)
@Pattern(regexp="^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$")
private String email;

Но все, что я получаю с этими строками кода

Set<ConstraintViolation<Person>> failures = validator.validate(personObject);
...
Map<String, String> failureMessages = new HashMap<String, String>();
for (ConstraintViolation<Person> failure : failures) {
    failureMessages.put(failure.getPropertyPath().toString(), failure.getMessage());
    System.out.println(failure.getPropertyPath().toString()+" - "+failure.getMessage())
}

Я получаю это на консоли:

email - must match "^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$"

, но у меня есть адрес электронной почты test@test.com, поэтому регулярное выражение не совпадает.

Итак, у меня есть две проблемы:

  • Что здесь не так?
  • И как я могу определить сообщение об ошибке самостоятельно, потому что покажу это пользователю, что это нехорошо: -)

Заранее благодарю за помощь и С наилучшими пожеланиями.

21
задан Tim 12 January 2011 в 22:39
поделиться