TOPシステム開発> はじめに
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

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

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

監修:山田祥寛   2006/8/28
1   2  次のページ
はじめに

   JSFには、HTMLコンポーネントを中心として、さまざまなバリデータ、コンバータ、コンポーネントが用意されています。しかし、実際の開発では、こうした標準品以外の部品が必要となることがあります。

   そのような用途に対応できるよう、JSFでは、部品を自作したり、標準コンポーネントの機能を拡張したり、サードベンダーが提供している部品を入手したりして開発に使用することができます。今回からは、バリデータ、コンバータ、コンポーネントを作成する方法を紹介します。

カスタムバリデータの作成方法

   JSFでは、バリデータをカスタムで作成する方法として、次の3つが用意されています。

  1. バリデータを作成し、<f:validator>タグから使用する方法
  2. バリデータを作成し、独自のバリデータタグから使用する方法
  3. マネージドBeanにバリデート用メソッドを実装し、入力コンポーネントのvalidator属性からメソッドバインディングで呼び出す方法

表1:バリデータをカスタムで作成する方法

   1の方法は、タグハンドラクラスを作成しなくてもバリデータが使用可能なので、最も手軽な方法といえるでしょう。しかし、この方法の場合、JSPからバリデータにパラメータを渡すことができません。

   JSPからバリデータにパラメータを渡したいなら、2の独自のバリデータタグから使用する方法があります。しかし、この場合はタグハンドラクラスを作成する必要があるため、その分手間がかかります。

   3のマネージドBeanにvalidate用メソッドを実装する方法は、FacesContextオブジェクトやUIComponentオブジェクトといった、JSFで用意されているオブジェクトを引数で受け取るバリデート用メソッドを実装する必要があります。しかし、この方法は「フレームワークに依存しない」というマネージドBeanの利点をなくしてしまうことになるので、あまり使用しないほうがよいでしょう。

   本連載では1、2に挙げたValidatorインターフェイスを実装する方法を紹介します。


カスタムバリデータの作成手順

   カスタムバリデータを作成する手順は、次のとおりです。

  1. javax.faces.validator.Validatorインターフェイスをimplementsしたバリデータクラスを作成し、validate()メソッドを実装する。
  2. JSF設定ファイルにバリデータを登録する。
  3. (独自のタグを使用する場合)カスタムタグ/TLDファイルを作成する。

表2:カスタムバリデータの作成手順


カスタムバリデータのサンプルアプリケーション

   本連載では、サンプルアプリケーションとして「合言葉一致バリデータ」を作成します。このバリデータは、画面で入力された文字列が合言葉と一致するかを検証します。

   このサンプルアプリケーションの画面遷移を図1に示します。入力した値が合言葉と一致した場合は次の画面に遷移し、一致しない場合はエラーメッセージを画面に表示します。

サンプルアプリケーションの画面遷移
図1:サンプルアプリケーションの画面遷移

1   2  次のページ

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

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


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