23

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

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

<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. 

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

4

3 に答える 3

45

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

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

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

于 2012-05-02T10:23:36.657 に答える
15

Daniel の回答に加えて、入力コンポーネントの属性をいつでも使用して、エラー メッセージからlabelclient-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 の間にありません。

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

于 2012-05-02T10:42:42.337 に答える
8

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

<h:input text required ="true" validatorMessage="Enter user friendly message">
    <f:validateLongRange
        minimum="3"
        maximum="6"/>
</h:inputText>
于 2015-03-30T15:25:31.660 に答える