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