Java / Spring MVC 3 validation of an email address

Posted by Tim on Stack Overflow See other posts from Stack Overflow or by Tim
Published on 2011-01-12T22:23:14Z Indexed on 2011/01/12 22:53 UTC
Read the original article Hit count: 150

Filed under:
|
|

I have a Java backend with Spring MVC and I am using validation in this way on my domain object for an email address:

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;

But all I get with these lines of 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())
}

I get this on the console:

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

but I have as email address [email protected], so the regexp does not match.

So I have two prolems:

  • What's wrong here?
  • And how can I define a error message on my own, because display this to the user, that is not a good thing :-)

Thank you in advance for your help and Best Regards.

© Stack Overflow or respective owner

Related posts about java

Related posts about validation