【问题标题】:Email patterns with primefaces带有 primefaces 的电子邮件模式
【发布时间】:2012-07-23 21:01:47
【问题描述】:

我认为我的问题很简单,但我似乎无法克服它。 我正在为这样的电子邮件使用输入文本:

<h:outputLabel value="Mail:" for="mail" />
                 <p:inputText id="mail" value="#{UtilisateurBean.mail}"
                    title="Mail" validator="#{UtilisateursValidate.email}"
                    validatorMessage="ecrivez un mail valide">
                    <f:validateRegex
                       pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
                    <f:validateLength minimum="2" />

问题是它不支持@之前的点字符,例如 nouraty.n@mail.com(通常是 gmail 的情况)。我试过这样的东西:

pattern="[\w\.-]*[a-zA-Z0-9._%-]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]"

pattern="[\w\.-]*[a-zA-Z0-9\._%-]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]"

但没有运气。 任何人都可以为这个问题提出解决方案吗?

【问题讨论】:

  • 对我来说很好用(用 nouraty.n@mail.com 测试)
  • :s 那么他们可能是 nouraty@mail.com 有效但 nouraty.n@mail.com 无效的任何其他原因吗?即使我怀疑它!
  • validator="#{UtilisateursValidate.email}" 到底在做什么?它不是针对无效模式执行验证吗?如果您删除该属性怎么办?请注意,验证器按照在组件上声明的顺序执行,从 validator 属性作为第一个属性开始。
  • 那是我在尝试某事而忘记取下它,我一直在看它,以至于我没有看到明显的东西。比你更重要的是,它实际上是一个正在控制的课程中的另一个验证。
  • 好的。我将其作为答案重新发布,以便您接受。

标签: validation email jsf-2 primefaces design-patterns


【解决方案1】:

JSF 验证器按照它们在组件上声明的顺序执行,从组件的validator 属性中的那个开始,如果有的话。你有一个validator="#{UtilisateursValidate.email}"。如果它针对不同(且错误)的模式进行验证并抛出 ValidatorException,那么您仍然会看到验证器消息。

删除或修复该验证器应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    相关资源
    最近更新 更多