uji:useBeanについて説明します。uji:useBeanには、以下の機能があります。
基本機能
uji:useBeanタグは、データBeanに名前を付けてJSPから利用可能にします。uji:useBeanタグは以下の動作をします。
idアトリビュートで指定した名前と関連付けてDispatchContextクラスのsetResponseBeanメソッドで設定したデータBeanを、この名前の変数名でJSPから参照可能にします。データBeanが未設定の場合は、clsアトリビュートで指定されたクラスのデータBeanを生成します。
typeアトリビュートが指定されていれば、typeで指定された型がJSP変数の宣言に使われます。データBeanはこのインタフェースの範囲で利用可能になります。
requestアトリビュートがtrueの場合は、データBeanをApcoordinator内で保持します。falseを指定した場合は、HTTPレスポンス返却後データBeanへの参照は失われます。
uji:useBeanタグのアトリビュートは以下を指定します。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
id | 不可 | データBeanを関連付けている名前を指定します。データBeanと名前の関連付けは、DispatchContextクラスのsetResponseBeanメソッドで行います。 | 省略できません。 |
cls | 可 | 領域名に関連付けられたデータBeanが見つからない場合、clsアトリビュートで指定されたクラスのデータBeanを生成します。 | データBeanを生成せず、nullを設定します。 |
type | 可 | JSP変数の宣言に使用するデータBeanのインタフェースクラス名を指定します。 | 既存のデータBeanのクラスまたは生成時に使用したクラスが使われます。 |
request | 可 | データBeanをApcoordinatorで保持するかどうかを指定します。trueの場合、次回のリクエストまでApcoordinatorの中でデータBeanを保持します。 | falseとなります。 |
scope | 可 | データBeanを取得するスコープを、request, session, applicationのいずれかで指定します。 | setResponseBeanメソッドによって設定されたデータBeanを取得します。 |
uji:useBeanタグのコンテントは記述できません。
JSP
<uji:useBean id="body" cls="somePackage.someBean" /> <uji:getProperty bean="body" property="someProp" />
この例は、uji:useBeanタグによって、JSP変数"body"でデータBeanを参照可能にします。uji:getPropertyタグやjsp:getPropertyタグ、またはJSP式によってデータを参照することができます。
setResponseBeanメソッドで名前でデータBeanを関連付ける場合、名前は画面全体で一意になる必要があります。uji:includeタグで使用する領域名に関連付けられたデータBeanを利用する場合は、領域名をそのまま変数名として使用することを推奨します。