基本機能
uji:compositeタグは、複合Bean形式のデータBeanを操作するための画面部品タグです。複合Bean形式とは、データBeanのプロパティが別のデータBeanのクラスとなっているものをいいます。言い換えれば、データBeanの入れ子構造を意味します。 uji:compositeタグは以下の動作をします。
beanとpropertyで指定されたデータBeanのプロパティを取得します。これをカレントオブジェクトとします。
uji:compositeNameタグによるデータBeanの更新をサポートします。
uji:compositeタグは、HTMLのFORMタグか、uji:formタグまたはuji:mcFormタグの中に記述します。
uji:compositeタグのアトリビュートは以下を指定します。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | データBeanのJSP変数を指定します。 | 画面部品タグのカレントオブジェクトを使用します。 |
property | 可 | データBeanのプロパティ名を指定します。 | データBean自体が使用されます。 |
cls | 可 | プロパティで取得したオブジェクトの型を指定します。 | 型のチェックを行わず、Objectクラスとして操作します。 |
uji:compositeタグのコンテントにはuji:compositeRendererタグを1個だけ記述します。それ以外のタグは記述できません。
JSP
<uji:composite bean="body" property="subBeanProp" cls="somePackage.SubBean" > <uji:compositeRenderer> 時刻: <uji:getProperty property="time" /> 名前: <input name="<uji:compositeName property='login' />" > </uji:compositeRenderer> </uji:composite>
beanアトリビュートは、他の画面部品タグのレンダラの中で、カレントオブジェクトが利用できる場合にのみ省略できます。
Mccoordinatorではcls属性を利用することはできません。
XML連携機能
uji:compositeタグは、XMLデータBeanの一部をXMLデータBeanとして取り出して使用します。コンテントとしてuji:compositeRendererタグを一つだけ記述します。propertyまたはxpathで指定した要素がuji:compositeRendererタグのコンテントにおけるカレントオブジェクトになります。
イベントモデルではXML連携機能は利用できません。
uji:compositeタグでは、XML連携機能を使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | データBeanまたはXMLデータBeanのJSP変数を指定します。(*) | カレントオブジェクトを使用します。 |
property | 可 | XMLデータBeanから取り出す要素をルート要素の子要素名で指定します。(*) | XMLデータBean自体が使用されます。 |
xpath | 可 | XMLデータBeanから取り出す要素をルート要素からの相対パスで指定します。(*) | XMLデータBean自体が使用されます。 |
(*)“7.6.1 使用するXML要素の指定方法”を参照してください。
propertyまたはxpathには単純要素または複合要素を指定します(*1)。
uji:compositeRendererタグのコンテントでは、propertyまたはxpathで指定した要素がカレントオブジェクトとなります。
指定した要素が単純要素の場合、その内容の文字列(Stringクラスのオブジェクト)がカレントオブジェクトになります。ただし、要素の内容に改行が含まれる場合、改行の直前までが使用されます。
指定した要素が複合要素の場合、その複合要素を保持するXMLデータBeanがカレントオブジェクトになります。
(*1) 要素の集合を指定した場合の動作は“7.6.3 要素や属性の集合を指定した場合の動作”を参照してください。
XML
<root> <subBean> <no>1</no> <time>21:00</time> <name></name> </subBean> </root>
JSP
<uji:composite bean="body" xpath="subBean"> <uji:compositeRenderer> 時刻: <uji:getProperty xpath="time" /><br> 名前: <input name="<uji:compositeName xpath='name' />" > </uji:compositeRenderer> </uji:composite>
表示画面
イベントモデル
uji:compositeタグは、複合Bean形式のmanaged beanを操作するための画面部品タグです。複合Bean形式とは、managed beanのプロパティが別のBeanのクラスとなっているものをいいます。言い換えれば、Beanの入れ子構造を意味します。
uji:compositeタグの動作については、“基本機能”を参照してください。
uji:compositeタグは、イベントモデルで使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | managed beanの名前を指定します。 | 画面部品タグのカレントオブジェクトを使用します。 |
property | 可 | managed beanのプロパティ名を指定します。 | managed bean自体が使用されます。 |
id | 可 | コンポーネントのIDを指定します。 | 自動的に付与されます。 |
uji:compositeタグのコンテントには以下のタグが記述できます。
uji:compositeRenderer(1個)
JSP
<f:view> <uji:form name="myform" method="post"> <uji:composite bean="myBean" property="subBeanProp" cls="somePackage.SubBean" > <uji:compositeRenderer> 時刻: <uji:getProperty property="time" /> 名前: <input name="<uji:compositeName property='login' />" > </uji:compositeRenderer> </uji:composite> </uji:form> </f:view>