tengo un motor Java con Spring MVC y estoy usando la validación de esta manera en mi objeto de dominio de una dirección de correo electrónico:Java/Spring MVC 3 validación de una dirección de correo electrónico
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;
Pero todo lo que consigo con estas líneas de código
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())
}
que conseguir esto en la consola:
email - must match "^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$"
pero tengo como dirección de correo electrónico [email protected]
, por lo que la expresión regular no coincide.
Así que tienen dos prolems:
- lo que está mal aquí?
- Y cómo puedo definir un mensaje de error por mi cuenta, porque esta pantalla para el usuario, que no es una buena cosa :-)
Gracias de antemano por su ayuda y un saludo.
¿Qué versión de Spring MVC se utiliza? –
La última versión 3.0.5. – Tim