|
||||||||||
| 前のページ 1 2 3 | ||||||||||
| TLDファイル、タグハンドラクラスの作成 | ||||||||||
|
タグを定義したTLDファイル(jsf_date.tld)をリスト1に示します(注1)。 リスト1:jsf_date.tld(抜粋)
※注1:
UIInputクラスは、ほかにも属性としてrequired、immediate、action、binding、actionListenerなどを持ちますが、本サンプルでは使用しないため省略しました
TLDファイルを定義したら、次にタグハンドラクラスを作成します。JSFのカスタムコンポーネント対応のタグハンドラクラスを作成する際のポイントは、次のとおりです。
表5:タグハンドラクラスを作成する際のポイント
表6:タグハンドラクラスで実装するメソッド 日付入力コンポーネントのタグハンドラクラスのクラス図を図4に示します。タグハンドラクラスは、JSFが用意しているjavax.faces.webapp.UIComponentBodyTagクラスをextendsしています。UIComponentBodyTagクラスには、UIComponentのタグハンドラのための基本的なメソッド、属性が実装されています。 ![]() 図4:タグハンドラクラスのクラス図 次に、タグハンドラクラス(InputDateTag.java)を作成します(リスト2)。 リスト2:InputDateTag.java(抜粋) タグハンドラクラスの作成する際のポイントは、次のとおりです。 |
||||||||||
| 1. value属性 | ||||||||||
|
インスタンス変数とそのセッター/ゲッターメソッドを定義しています。 |
||||||||||
| 2. getComponentType()メソッド/getRendererType()メソッド | ||||||||||
|
この2つのメソッドは、UIComponentTagクラスの抽象メソッドなので、実タグクラスで実装します。getComponentType()メソッドは使用するコンポーネントのタイプ名、getRendererType()メソッドは使用するレンダラのタイプ名を返す必要があります。このタイプ名は、JSF設定ファイルに定義されるタイプ名と同じ文字列です。このメソッドがJSFから呼ばれることにより、タグクラス、コンポーネントクラス、レンダラクラスの関連付けが認識されます。 |
||||||||||
| 3. setProperties()メソッド | ||||||||||
|
タグの属性値をコンポーネントに反映します。isValueReference()メソッドで、タグの値がバインド式かどうかを判定して、バインド式の場合はUIコンポーネントにValueBindingクラスのインスタンスをセットしています。 次回はレンダラクラスとUIコンポーネントクラスを作成し、JSF設定ファイルへ登録を行います。 |
||||||||||
|
前のページ 1 2 3 |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||




