基本機能
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>