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

問題は、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}"ます。別の(そして間違った)パターンに対して検証していて、をスローしているValidatorException場合でも、バリデーターメッセージが表示され続けます。

そのバリデーターを削除または修正すると、問題が解決するはずです。

于 2012-07-25T14:55:08.297 に答える