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

動的 Web ページを設計する際、 カスタム・バリデーターを用いることで、独自のデータ検証を行うことができます。 カスタム・バリデーターは、実行依頼されたデータを調べて、そのデータについて妥当性検査を行います。 例えば、入力テキスト・フィールドにカスタム・バリデーターを追加して、 実行依頼された値に 9 つの数値が含まれていることを確認する場合に、 実行依頼された値に 9 つの数値が含まれていないと、 ページの提供時にカスタム・バリデーターがエラー・メッセージを表示します。
Faces JSP ファイルを作成する前に、Faces テクノロジーが使用可能な動的 Web プロジェクトを作成する必要があります。 詳しくは、『Faces (JSF) の開発』を参照してください。
以下の手順は、Web プロジェクトにカスタム・バリデーターを作成する方法の 1 つです。
  1. JSF ページを作成します (「ファイル」 > 「新規」 > 「Web ページ」をクリックし、「新規 Web ページ」ウィザードの説明に従います)。 JSF ページの作成について詳しくは、Faces JSP ファイルの作成を参照してください。
  2. 「プロジェクト・エクスプローラー」ビューで Web プロジェクトの「Java リソース: src」フォルダーを右クリックし、「新規」 > 「パッケージ」を選択する。
  3. 新規 Java パッケージ」ダイアログで、パッケージに「validator」と指定して、「終了」をクリックする。 「validator」という名前の新しいパッケージが 作成され、「Java™ リソース: src」フォルダーに表示されます。
  4. その「validator」という名前のパッケージを右クリックして、「新規」 > 「クラス」の順にクリックする。 「新規 Java クラス」ウィザードが開きます。
  5. 新規 Java クラス」ウィザードで、以下を行います。
    1. クラス名として「MyValidator」を指定する。
    2. 「追加」をクリックする。
    3. 表示される「実装されたインターフェースの選択」ダイアログの「インターフェースの選択」フィールドに、javax.faces.validator.Validator と入力する。 「OK」をクリックします。「終了」をクリックする。 この MyValidator.java ファイルは「validator」フォルダー内に作成され、 次のような 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: カスタム妥当性検査コードをここに追加してください。このコードは JSF ライフ・サイクルの妥当性検査
      		//      フェーズで実行されます。検証エラーが起った場合は、例外メッセージをスローできます。
      		//      言い換えると、h: メッセージ (複数も可) コンポーネントを使用して表示できます。
      	 }
  6. 同プロジェクトの「WEB-INF」フォルダーで、faces-config.xml という名前のファイルを開く。 「ソース」ビューで </faces-config> の前のファイルに次のコードを追加する。
    <validator>
    	<validator-id>MyValidator</validator-id>	
    	<validator-class>validator.MyValidator</validator-class>
    </validator>

    faces-config.xml を保存します。

  7. ステップ 1 で作成したページに、入力テキスト・フィールドを追加する。
  8. 以下のように、ページの「ソース」ビューで inputText の子として validator タグを追加し、validatorId 属性を「MyValidator」に設定する。
    <h:inputText styleClass="inputText" id="text1"><f:validator validatorId="MyValidator"></f:validator></h:inputText>
  9. ページに「ボタン - コマンド」コンポーネントを追加する。
  10. サーバーでこのページを実行する。コマンド・ボタンをクリックすると、コンソールに「my custom validator」と表示されます。

フィードバック