2012-04-07 10 views
2

Ich habe ein Problem mit der GWT-clientseitigen Validierung mithilfe der Hibernate-Validierungs-Annotation @Email. Ich habe diese Annotation auf Entity-Getter gesetzt und wenn ich Constrains-Verletzungen überprüfe (nachdem ich diese E-Mail gesetzt habe: test @ test), bekomme ich eine Fehlermeldung "keine wohlgeformte E-Mail-Adresse". Aber wenn ich das auf Serverseite teste, dann geht diese E-Mail-Adresse durch. Hat jemand von euch dieses Problem?Hibernate-E-Mail-Validierung fehlgeschlagen

Antwort

3

Die von Hibernate Validator bereitgestellte Implementierung EmailValidator verwendet java.util.regex.Pattern, um Eingabezeichenfolgen zu überprüfen. Da GWT Java-Code in Javascript kompiliert, unterstützt es nur die JS-Ebene RegEx und erlaubt daher keine Verwendung von java.util.regex.Pattern.

Als solcher, wenn Sie die GWT Neuimplementierung von EmailValidator sehen, sehen Sie, dass diese Prüfung insbesondere nicht implementiert/unterstützt: http://grepcode.com/file/repo1.maven.org/maven2/com.google.gwt/gwt-user/2.4.0/org/hibernate/validator/constraints/impl/EmailValidator.java?av=h

9

Als Abhilfe die Muster Anmerkung verwenden:

@Pattern(regexp ="^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\\.(?:[a-zA-Z]{2,6})$") 
+0

Das funktioniert. Aber die UI-Nachricht ist nicht benutzerfreundlich. Ich fand es besser, den Hibernate-Validator mit einer gwt-Version neu zu schreiben, die RegEx anstelle von java.util.regex.Pattern verwendet – robert

Verwandte Themen