2012-04-02 1 views
5

私はLongプロパティにマップされた入力テキストを持っています。JSF変換メッセージをカスタマイズするには '1つ以上の数字で構成される数字でなければなりません'?

myForm:myField: 'someText' must be a number consisting of one or more digits.

私はこのメッセージをカスタマイズする方法を思っていた:

私はその入力テキストに非数字を入力すると、私は、次の変換エラーを取得

private Long length; 

<h:inputText value="#{bean.length}" /> 

length must be a number greater than zero.

答えて

9

どちらか入力コンポーネントのconverterMessage属性を使用します(!と負の値を入力してvalidatorMessageを供給することができるというユーザーを防ぐために<f:validateLongRange>を使用することを忘れないでください)

<h:inputText converterMessage="length must be a number greater than zero" /> 

または組み込みのデフォルト・メッセージをオーバーライドするクラスパスにプロパティ・ファイルを作成します。LongConverter

javax.faces.converter.LongConverter.LONG = length must be a number greater than zero 

faces-config.xmlでメッセージ・バンドルとして登録されている:

<application> 
    <message-bundle>com.example.CustomMessages</message-bundle> 
</application> 

上記の例では、ファイル名がCustomMessages.propertiescom.exampleパッケージ内に配置されていることを前提としています。どこにでも名前を付けて配置することができます。

javax.faces.converter.LongConverter.LONGのようなすべてのメッセージキーの概要と、this answerにコピーされたthe JSF specificationの2.5.2.4章のデフォルト値を見つけることができます。

関連する問題