0

私の質問<p:dataTable editable="true">は、ユーザー<p:inputText>が最大値を超える長さの値を入力した場合、<f:validateLength/>
これの検証エラーを処理したいということです。dataTable にあるかどうかは関係ありません。私が試した特定のビジネスを行うために、Beanでこの検証エラーをどのように処理できますか?<p:inputText><f:validateLength/>
<p:inputText>

FacesContext context = FacesContext.getCurrentInstance();
Iterator<FacesMessage> messages = context.getMessages();

しかし、何をすべきかというメッセージが表示され
、私も試しました

FacesContext context = FacesContext.getCurrentInstance();
boolean validationError = context.isValidationFailed();

ドキュメントFacesContext#isValidationFailedも読みましたが、それ
を使用する方法の新しい詳細は作成されていませんが、
検証が成功または失敗した場合は常にfalseを返します
間違った方法で使用しているか、この関数で何か不足しています

4

2 に答える 2

0

は、タグに追加するおよび属性にf:validateLength応じて、入力フィールドの長さをチェックします。例:maximumminimum

<f:validateLength maximum="5" minimum="2"/>

これは JSF 組み込みバリデーターの 1 つであるため、コンポーネントにp:messageorh:messageタグを追加するか、ページ全体にグローバルを追加すると、標準エラー メッセージが表示されます (必要に応じて、デフォルトのエラー メッセージを変更できます)。

カスタム検証の場合、 のvalidator属性を取得しp:inputTextて、それをバッキング Bean のバリデーター メソッドにバインドする必要があります。その後、好きなものを検証できます。

于 2013-02-22T07:15:04.803 に答える
0

これを実現する最善の方法は、カスタム バリデータを作成し、コンポーネントから呼び出すことです。コンポーネントからラベルを渡すので、バリデーターに{0} XXXXXXXXXXXXXのようなメッセージを追加できます。これにより、コンポーネントごとに異なるエラー メッセージを表示できます。また、プロパティ ファイルでエラー メッセージを構成し、バリデータ クラスで読み取ることができます。

これが役に立てば幸いです。

于 2013-02-22T07:54:38.770 に答える