Mam backend Java z wiosny MVC i używam walidacji w ten sposób na mojego obiektu domeny dla adresu e-mail:Java/Wiosna MVC 3 walidacja adresu email
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;
Ale ja się z te linie kodu
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())
}
uzyskać to na konsoli:
email - must match "^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$"
ale nie mam jak adres e-mail [email protected]
, więc wyrażenie regularne nie pasuje.
Więc mam dwa prolems:
- Co tu się stało?
- Jak mogę zdefiniować komunikat o błędzie na własną rękę, ponieważ wyświetlacz to użytkownikowi, że nie jest to dobra rzecz :-)
Z góry dziękuję za pomoc i pozdrawiam.
Która wersja Spring MVC używasz? –
Najnowsza wersja 3.0.5. – Tim