TOPシステム開発> 独自のバリデータタグを作成する方法
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

第13回:独自のバリデータタグの作成

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

監修:山田祥寛   2006/9/1
1   2  次のページ
独自のバリデータタグを作成する方法

   次に、カスタムバリデータを独自のバリデータタグで使用する方法を紹介します。独自のバリデータタグを用意する方法には、タグからバリデータにパラメータを渡せるようになるというメリットがあります。ここでは、前回紹介したリスト1で、WordValidatorクラスのvalidate()メソッド内で固定で定義していた合言葉を、タグのパラメータから渡す例を紹介します。
リスト1:WordValidator.java(抜粋)(再掲)
WordValidator.java(抜粋)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   独自のバリデータタグを作成する手順は次のとおりです。

  1. バリデータクラスを作成
  2. バリデータをJSF設定ファイルに登録
  3. カスタムタグクラス、TLDファイルを作成
  4. JSPファイルに記述

表1:独自のバリデータタグの作成手順


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

   まず、カスタムバリデータクラスを作成します(リスト2)。

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

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


1. バリデータクラスに属性とセッターメソッドを作成

   バリデータクラスにインスタンス変数とセッターメソッドを定義します。このセッターメソッドを通して、カスタムタグクラスからタグの属性値が渡されます。


2. StateHolderインターフェイスをimplementsする

   バリデータタグを独自に作成する場合は、Validatorインターフェイスに加えて、java.faces.component.StateHolderインターフェイスをimplementsしなければなりません。StateHolderの実装クラスは以下の4つのメソッドを実装する必要があります。

isTransient()メソッド
setTransient()メソッド
restoreState()メソッド
saveState()メソッド

   restoreState()メソッド、saveState()メソッドという2つのメソッドには、バリデータの状態(インスタンス変数)を保存/復元する処理を記述します。restoreState()メソッドには引数で受け取ったオブジェクトから、インスタンス変数を復元する処理を記述します。saveState()メソッドには、シリアライズ可能なオブジェクトにインスタンス変数(=オブジェクトの状態)を格納し、戻り値として返す処理を記述します。

1   2  次のページ

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

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


INDEX
第13回:独自のバリデータタグの作成
独自のバリデータタグを作成する方法
  JSF設定ファイルへの登録