Validation Java / Spring MVC 3 d'une adresse email

J'ai un Java backend avec Spring MVC et je suis en utilisant la validation de cette façon sur mon objet de domaine en une adresse e-mail:

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;

Mais tout ce que j'obtiens avec ces lignes de code

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())
}

- Je obtenir ce sur la console:

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

mais j'ai que les adresses de courriel [email protected]de sorte que la regexp ne correspond pas.

J'ai donc deux prolems:

  • Quel est le problème ici?
  • Et comment puis-je définir un message d'erreur sur mon propre, parce que l'affichage à l'utilisateur, qui n'est pas une bonne chose 🙂

Je vous remercie d'avance pour votre aide et Meilleures Salutations.

source d'informationauteur Tim