TOPシステム開発> JSF設定ファイルへの登録
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

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

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

監修:山田祥寛   2006/9/1
前のページ  1  2
JSF設定ファイルへの登録

   次に、バリデータをJSF設定ファイル(faces-config.xml)に登録します(リスト3)。
リスト3:faces-config.xml(抜粋)
faces-config.xml(抜粋)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   validator-id要素には、タグハンドラクラスのsetValidatorId()メソッド(後述)の引数に設定される文字列と同じものを設定します。


タグハンドラクラス、TLDファイルの作成

   続いて、タグハンドラクラス(ValidateWordTag.java)を作成します(リスト4)。

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

   タグハンドラクラスを作成する際のポイントは、次のとおりです。


1. setValidatorId()メソッドの呼び出し

   コンストラクタで、スーパークラスのsetValidatorId()メソッドを呼び出して、バリデータとの関連付けを行っています。setValidatorId()メソッドの引数には、JSF設定ファイルのvalidator-id要素に指定した値と同じ文字列を設定します。


2. タグ属性の定義

   タグから渡される属性を設定するインスタンス変数とセッターメソッドを定義します。ここでは、wordsというString型の変数を定義しています。


3. タグ属性値をバリデータに渡す処理を記述

   createValidator()メソッドをオーバーライドします。オーバーライドしたメソッド内でスーパークラスのメソッドを呼び、バリデータクラス(WordValidator2)のインスタンスを取得し、タグの属性値(words)をセッターメソッドでバリデータに渡しています。

   リスト5は、カスタムタグを定義したTLDファイル(custom_validator.tld)です。validateWordタグの属性としてwords属性を定義しています。タグハンドラクラスを作成したら、TLDファイルを定義します(リスト5)。

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


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

   最後に、JSPファイル(custom_validator2.jsp)にタグを記述します(リスト6)。words属性で、「合言葉」をカンマ区切りで指定しています。

リスト6:custom_validator2.jsp(抜粋)
<f:view>
<h:form>
   <h:panelGrid>
      <h:outputText value="合言葉は? " />
      <h:inputText id="word" required="true">
         <wings:validateWord words="山,川,海"/>
      </h:inputText>
      <h:message for="word"/>
      <h:commandButton value="Submit" action="success"/>
   </h:panelGrid>
</h:form>

前のページ  1  2


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

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


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