web-dev-qa-db-ja.com

JSF検証エラーメッセージをカスタマイズする方法

検証が失敗したときに表示される検証メッセージをカスタマイズするにはどうすればよいですか?

ここに私が持っているコードがあります:

<h:form>
    <p><h:inputText
           id="userNo"
           title="Type a number from 0 to 10:">
       <f:validateLongRange
           minimum="3"
           maximum="6"/>
       </h:inputText>

       <h:commandButton id="submit" value="Submit"
           action="response"/>
    </p>
    <h:message showSummary="true" showDetail="false"
        id="errors1"
        for="userNo"/>
</h:form>

現在、メッセージは次のようになっています。

j_idt10:userNo: Validation Error: Specified attribute is not between the expected values of 3 and 6. 

これは特にユーザーフレンドリーではありません。

18
Eleeist

最も簡単な方法は、validatorMessage="my custom message"タグに<h:inputText>属性を設定することです。

より高度な方法については、この記事をお読みください JSF 2.0で検証エラーメッセージをカスタマイズする

そして、JSF 2.0.xでオーバーライドできるすべての利用可能なメッセージへの完全なリファレンス

42
Daniel

ダニエルの答えに加えて、入力コンポーネントにlabel属性を常に使用して、client-id(j_idt10:userNo:)エラーメッセージから。

例えば。と

<h:inputText id="userNo" title="Type a number from 0 to 10:"
             label="User number">
  <f:validateLongRange
           minimum="3"
           maximum="6"/>
</h:inputText>

生成されます:

ユーザー番号:検証エラー:指定された属性は、期待値3と6の間にありません。

エラーメッセージのこの部分を動的に変更するために、ラベル属性をel式にすることもできます。

10
Matt Handy

入力テキストのvalidatorMessageプロパティを使用できます。必須メッセージにはrequiredMessageプロパティを使用します。これは検証メッセージとは異なります。

<h:input text required ="true" validatorMessage="Enter user friendly message">
    <f:validateLongRange
        minimum="3"
        maximum="6"/>
</h:inputText>
5
Arpita Nayak