JSF inputTextおよびvalidAtereGexpatter
-
24-10-2019 - |
質問
メッセージにラベル属性を表示したい:
<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>
所属していません StackOverflow