0

GlassFish 3.1.2.2 を使用しており、フィールド識別子/ラベルを含めないように汎用検証メッセージ テンプレートを定義したいと考えています。

StackOverflow でいくつかの関連トピックを見つけましたが、これらのソリューション (すべてjavax.faces.validator.BeanValidator.MESSAGEを含む) は機能していません。

1) クラスパスのルートに ValidationMessages.properties を配置する (私の場合、WAR ファイルの WEB-INF/classes に配置された) - 効果なし

2) faces-config.xml の <message-bundle> に ValidationMessages.properties ファイルを定義する - 効果なし

3) faces-config.xml の <resource-bundle> に ValidationMessages.properties ファイルを定義する - 効果なし

EL で使用できるように、リソース バンドルが正しく機能していることをテストしまし

注: アプリケーションの各入力フィールドに validatorMessage 属性を指定したくありません。アプリケーション全体に対してカスタム メッセージを 1 回設定したいだけです。

重要: Mkyong.comで紹介されている解決策も機能していません。

注:私は JSF 2.0 の使用を宣言していますが、Glassfish 3.1.2.2 は確実にそれをサポートしています。 注: JSF 検証/Bean 検証を使用する代わりにマネージド Bean に検証を実装したくありません。

4

2 に答える 2

2

私は自分自身に答えています: 必須フィールド検証用のカスタム メッセージを設定するには、メッセージ バンドル ファイルに次のプロパティを設定する必要があります (メッセージ バンドルは、faces-config.xml で <message-bundle> タグによって定義されます)。

1) javax.faces.component.UIInput.REQUIRED_detail - デフォルトで h:message または h:messages タグに表示されるメッセージ - または showDetail=true (デフォルト) の場合。一般的には十分です。

2) javax.faces.component.UIInput.REQUIRED - h:message および h:messages タグで showSummary=true の場合に表示されるメッセージ。h:message/h:messages に要約を表示する場合は、これを追加で設定します。

注:これは、javax.faces.validator.BeanValidator.MESSAGEが必須フィールド エラー メッセージの原因であるとは限りません。

于 2013-04-17T09:11:54.840 に答える