4

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

<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" />

问题是它不支持@ like 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]"

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

4

1 回答 1

1

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

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

于 2012-07-25T14:55:08.297 回答