質問

メッセージにラベル属性を表示したい:

    <h:inputText id="email" label="#{sW.email}" value="#{contattiBean.contatto.email}"
                                 required="true">
              <f:param value="#{sW.email}" />
              <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]"/>
    </h:inputText>

私はf:paramを設定しました

`javax.faces.validator.RegexValidator.NOT_MATCHED={0}: Valore non valido`

{0}は、正規表現パターンに置き換えられます。一方、私はラベル値を表示するものです。私の解決策が機能しない方法はどうすればよいですか?

役に立ちましたか?

解決

javax.faces.faces.validator.regexvalidatorのソースをチェックするので、モハラを使用していると思います。独自のカスタムメッセージ。

//From javax.faces.validator.RegexValidator source
if (!matcher.matches()) {
   Object[] params = { regex }; 
   fmsg = MessageFactory.getMessage(locale, NOT_MATCHED_MESSAGE_ID, params);
   throw new ValidatorException(fmsg);
}

MyFacesのソースでは、パターンとラベルの両方を渡すように見えます。

少なくとも2つの簡単なオプションがあります。MyFacesを使用するか、入力コンポーネントのvalidAtormessage属性をより適切に使用します。

validAtormessageの説明はです 存在する場合、存在する場合、バリデーターメッセージのテキストとして使用される属性を有効にした属性を有効にし、バリタレーターから来るメッセージを置き換えます.

 <h:inputText id="email" label="#{sW.email}" 
         value="#{contattiBean.contatto.email}"
         required="true" validatorMessage="#{sW.email} is not valid">
          <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]"/>
 </h:inputText>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top