【问题标题】:Hibernate @email validation failedHibernate @email 验证失败
【发布时间】:2012-04-07 11:18:54
【问题描述】:

我在使用休眠验证注释@Email 进行 GWT 客户端验证时遇到问题。我将此注释放在实体 getter 上,当我检查约束违规时(在我输入此电子邮件后:test@test),我收到一条错误消息“不是格式正确的电子邮件地址”。但是当我在服务器端测试这个时,这个电子邮件地址通过了。你们有人有这个问题吗?

【问题讨论】:

    标签: javascript email gwt hibernate-validator


    【解决方案1】:

    使用 Pattern 注释作为解决方法:

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

    【讨论】:

    • 这行得通。但 UI 消息对用户不友好。我发现用使用 RegEx 而不是 java.util.regex.Pattern 的 gwt 版本重写休眠验证器会更好
    【解决方案2】:

    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

    【讨论】:

      【解决方案3】:

      试试下面的邮件:

      test@test.test
      

      然后告诉我结果。

      【讨论】:

        猜你喜欢
        • 2018-11-12
        • 2023-02-11
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 2012-03-15
        • 2012-10-18
        • 2017-09-21
        相关资源
        最近更新 更多