TOPシステム開発> <f:validator>タグを使用する方法
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

第12回:カスタムバリデータの作成方法〜JSFをより高度に利用するために

著者:WINGSプロジェクト  佐藤治夫(株式会社ビープラウド)、
小泉守義

監修:山田祥寛   2006/8/28
前のページ  1  2
<f:validator>タグを使用する方法

   まず、<f:validator>タグを使用する方法を説明します。手順は次のとおりです。
  1. バリデータクラスを作成
  2. バリデータをJSF設定ファイルに登録
  3. JSPファイルに記述

表3:タグを使用するための手順

   この場合、標準で用意されている<f:validator>タグを使用するので、カスタムタグを作成する必要はありません。


カスタムバリデータクラスの作成

   カスタムバリデータクラスを作成する際のポイントは、次のとおりです。


1. javax.faces.validator.Validatorをimplementsする

   Validatorインターフェイスはvalidate()メソッドを定義しているので、バリデータクラスはvalidate()メソッドを実装します。


2. 検証処理ロジック

   validate()メソッド内で検証エラーと判定した場合は、ValidatorExceptionをスローします。サンプルでは、あらかじめ想定した「山」「川」という合言葉に入力文字列が一致しない場合にValidatorExceptionをスローしています。

   ValidatorExceptionのコンストラクタにはエラーメッセージ文字列を保持したFacesMessageのインスタンスを設定します。FacesMessageが保持するエラーメッセージは、本来はメッセージバンドルから取得すべきですが、ここではわかりやすくするため、直接文字列を指定しています。カスタムバリデータ(WordValidator.java)のソースをリスト1に示します。

リスト1:WordValidator.java(抜粋)
WordValidator.java(抜粋)
(画像をクリックすると別ウィンドウに拡大図を表示します)


JSF設定ファイルへの登録

   次に、作成したバリデータをJSF設定ファイル(faces-config.xml)に登録します(リスト2)。

リスト2:faces-config.xml(抜粋)
faces-config.xml(抜粋)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   <validator-id>要素には、<f:validator>タグのvalidatorId属性で指定する値と同じものを設定します。<validator-class>要素には、バリデータのクラス名を設定します。


JSPファイルへのタグの記述

   最後に、JSPファイル(custom_validator.jsp)にタグを記述します(リスト3)。<f:validator>タグのvalidatorId属性には、リスト2に示したJSF設定ファイルの<validator-id>要素の値と同じものを設定します。

リスト3:custom_validator.jsp(抜粋)
custom_validator.jsp(抜粋)
(画像をクリックすると別ウィンドウに拡大図を表示します)


次回は

   次回はバリデータをカスタムで作成する方法として、表1にあげた2つ目の「独自のバリデータタグを作成する方法」について解説します。

前のページ  1  2


著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、小泉守義 監修:山田祥寛
著者プロフィール
著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、
小泉守義
監修:山田祥寛

WINGSプロジェクトは、有限会社WINGSプロジェクト(代表取締役山田祥寛)が運営するライティング・チーム。海外記事の翻訳から、主にサーバサイド分野の書籍/雑誌/Web記事の執筆、講演、アプリケーション開発などを幅広く手がける。2006年7月時点での登録メンバーは20名で、現在も一緒に執筆をできる有志を募集中。執筆に興味のある方は、どしどし応募いただきたい。


INDEX
第12回:カスタムバリデータの作成方法〜JSFをより高度に利用するために
  はじめに
<f:validator>タグを使用する方法