【发布时间】:2012-04-07 11:18:54
【问题描述】:
我在使用休眠验证注释@Email 进行 GWT 客户端验证时遇到问题。我将此注释放在实体 getter 上,当我检查约束违规时(在我输入此电子邮件后:test@test),我收到一条错误消息“不是格式正确的电子邮件地址”。但是当我在服务器端测试这个时,这个电子邮件地址通过了。你们有人有这个问题吗?
【问题讨论】:
标签: javascript email gwt hibernate-validator
我在使用休眠验证注释@Email 进行 GWT 客户端验证时遇到问题。我将此注释放在实体 getter 上,当我检查约束违规时(在我输入此电子邮件后:test@test),我收到一条错误消息“不是格式正确的电子邮件地址”。但是当我在服务器端测试这个时,这个电子邮件地址通过了。你们有人有这个问题吗?
【问题讨论】:
标签: javascript email gwt hibernate-validator
使用 Pattern 注释作为解决方法:
@Pattern(regexp ="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.(?:[a-zA-Z]{2,6})$")
【讨论】:
Hibernate Validator 提供的EmailValidator 实现使用java.util.regex.Pattern 来验证输入字符串。由于 GWT 将 Java 代码交叉编译为 Javascript,因此它只支持 JS 级别的RegEx,因此不允许使用java.util.regex.Pattern。
因此,如果您看到 EmailValidator 的 GWT 重新实现,您会发现这个验证器特别没有实现/支持: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
【讨论】:
试试下面的邮件:
test@test.test
然后告诉我结果。
【讨论】: