カスタム・バリデーターの作成

動的 Web ページを設計する際に、他の方法で検証するデータにカスタム・バリデーターを使用したい場合があります。カスタム・バリデーターは、送信された値を確認し、その値の検証を実行します。例えば、送信された値に 9 つの数字が含まれていることをバリデーターが確認するように、カスタム・バリデーターを入力テキスト・フィールドに追加することができます。送信された値に 9 つの数字が含まれていない場合は、ページが表示された時点で、カスタム・バリデーターがエラー・メッセージを表示します。

次の手順により、Web プロジェクトでカスタム・バリデーターを作成できます。
  1. Web プロジェクトを作成する (「ファイル」 > 「新規」 > 「動的 Web プロジェクト」)。
  2. 新規 Faces JSP ページを作成する (「ファイル」 > 「新規」 > 「Faces JSP ファイル」)。
  3. プロジェクト・エクスプローラー・ビューで、Web プロジェクト の Java™ ソース・フォルダーを開く。
  4. Java ソース・フォルダーを右クリックし、次に「新規」 > 「パッケージ」をクリックする。
  5. 「新規 Java パッケージ」ダイアログで、 パッケージに validator と名前を付け、「終了」をクリックする。 validator という名前の新規パッケージが作成され、Java ソース・フォルダーに表示されます。
  6. validator という名前のパッケージを右クリックし、次に「新規」 > 「クラス」をクリックする。
  7. 「新規 Java クラス」ダイアログで、次のようにします。
    1. クラスに MyValidator という名前を付ける。
    2. 「追加」をクリックする。
    3. 表示された「実装されたインターフェースの選択」ダイアログの「インターフェースの選択」フィールドに、javax.faces.validator.Validator と入力する。
    4. 「OK」をクリックする。
    5. 「終了」をクリックする。 validator フォルダーに、ファイル MyValidator.java が作成され、次のような Java コードが含まれています。
      package validator;
      
      import javax.faces.component.UIComponent;
      import javax.faces.context.FacesContext;
      import javax.faces.validator.Validator;
      import javax.faces.validator.ValidatorException;
      
      public class MyValidator implements Validator {
      
      	/* (non-Javadoc)
      	 * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
      	 */
      	public void validate(FacesContext arg0, UIComponent arg1, Object arg2)
      		throws ValidatorException {
      		// TODO Auto-generated method stub
      
      	}
      
      public void validate(FacesContext arg0, UIComponent arg1, Object arg2)
      		throws ValidatorException {
      			    System.out.println("my custom validator");
      		//TODO: Add your custom validation code here. This code will be execured during the validation
      		//phase of the JSF lifecycle. If any validation errors occur you can throw an exception message
      		//that in turn can be displayed using a h:message (or h:messages) component.
      
      	 }
  8. 同じプロジェクトの WEB-INF フォルダーで、faces-config.xml という名前のファイルを開く。 ファイルに次のコードを追加します。
    <validator>
    	<validator-id>MyValidator<validator-id>	
    	<validator-class>validator.MyValidator<validator-class>
    <validator>
  9. ステップ 2 で作成したページに入力テキスト・フィールドを追加する。
  10. ページのソース・モードで、validator タグを inputText の子として追加し、validatorId 属性を次のように "MyValidator" に設定する。
    <h:inputText styleClass="inputText" id="text1"><f:validator validatorId="MyValidator"></f:validator></h:inputText>
  11. コマンド - ボタン・コンポーネントをページに追加する。
  12. サーバー上でページを実行する。コマンド・ボタンがクリックされると、コンソール上に "my custom validator" が表示されます。
関連概念
JavaServer Faces
関連タスク
Faces 入力コンポーネントへの検証の追加
Faces アプリケーションの作成 : 概要
Faces JSP の作成
JavaServer Faces ライフ・サイクル
関連資料
Faces コンポーネント参照
Faces コンポーネントの属性
フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005