0

JSF (v2.0) フレームワークに基づく Web アプリケーションを開発しています。アプリケーションにカスタム検証が必要です。クラスJSF validation frameworkを実装することで を拡張することにしました。Validator

検証が必要な複数の入力フィールドがあるとしましょう。これらの入力フィールドはFirst Name, Last NameEmail Address.ユーザーがこれらのフィールドに情報を入力する必要があります。また、電子メール アドレス フィールドには と の 2 つの検証がRequiredありisValidEmailAddressます。

とフィールドでカスタムRequired検証を使用できるはずです。しかし、毎回、フィールドごとに異なるエラー メッセージを表示する必要があります。例えば ​​の場合、 「名姓 名姓は必須」と表示したい。First Name, Last NameEmail AddressFirst Nameis required. In case ofI want to display

Required複数のフィールドに同じバリデーションの実装を再利用するにはどうすればよいですか?ただし、エラー メッセージは異なります。JSFでそれを行うことは可能ですか? 教えてください。

4

1 に答える 1

0

まず第一に、JSF で必要な入力に対して独自の検証ロジックを記述する必要はありません。これは、フレームワーク自体によって提供される基本的な機能の 1 つです。

JSF の検証フレームワークは、検証に関連するメッセージから明確に抽象化されているため、この 2 つが相互に依存する必要はありません。オプション:

  1. 各入力コンポーネントには、validatorMessage検証エラー時にユーザーに表示されるテキスト/文字列を指定できる属性があります。特定のユース ケースでは、JSF はさらに一歩進んで、入力コンポーネントのrequiredandrequiredMessage属性を指定しています。必要な入力を強制し、必要な入力の検証専用のメッセージを表示します。これがユース ケースで意味することは、必要な入力に対してカスタム検証ロジックを記述する必要がないということです。

  2. より良い設計の原則により、必要なすべての検証/変換エラー メッセージをリソース バンドル (例はこちら) で構成し、jsf ビュー内でリソース バンドルのエントリを参照できます。

validateバリデータ インターフェイスを実装するには、次のシグネチャを持つメソッドを実装する必要があります

   public void validate(FacesContext ctxt, UIComponent comp, Object value) throws ValidatorException

compは、それを取得できる検証中のコンポーネントを参照しClass、clientId などvalueは、コンポーネントから送信された値を提供します。

于 2013-01-02T04:07:25.160 に答える