休眠@电子邮件验证失败

问题描述:

我使用hibernate验证注释@Email GWT客户端验证有问题。我把这个注解放在实体getter上,当我检查约束违规(我把这封电子邮件:test @ test)后,我得到一个错误信息“不是一个格式正确的电子邮件地址”。但是当我在服务器端测试这个时候,比这个电子邮件地址通过。有没有人有这个问题?休眠@电子邮件验证失败

由Hibernate Validator提供的EmailValidator实现使用java.util.regex.Pattern来验证输入字符串。由于GWT将Java代码交叉编译为Javascript,因此它仅支持JS级别RegEx,因此不允许使用java.util.regex.Pattern

因此,如果你看到GWT重新实施的EmailValidator,你会看到这个验证,特别是没有实现/支持: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

尝试用以下信箱:

[email protected] 

而且告诉我结果。

+0

我做了,但没有成功。 – user1289877 2012-04-08 08:10:30

至于解决方法是使用模式注释:

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

这工作。但是UI消息不是用户友好的。我发现使用RegEx而不是java.util.regex.pattern重写hibernate验证器会更好。 – robert 2015-10-22 12:59:54