表のセル、ツリーのノード・リーフ、リストのエレメントでは、項目の値としてデータBeanを返すことができます。このデータBeanに対してさらに画面部品タグを適用することで、画面部品タグをネストさせることができます。“A.2 画面部品のサンプル”のサンプルの詳細画面は、リストのデータBeanを複合Beanで受け取る例です。 この方法を使うことにより、以下が可能です。
表の中のリストなど、階層の深いデータを表現する。
データBeanの繰り返しを表現する。
画面部品タグをネストする場合、下位の画面部品タグを部品として別の入出力ページとすることができます。この場合、上位の画面部品タグのレンダラ中にアトリビュートなしのuji:includeを記述します。このように指定することで、領域名を使用せずに、上位の画面部品から渡されたデータBeanを使用してページマップを参照し、インクルードの動作をします。インクルードされる側の下位の入出力ページは、全体をuji:includedBodyタグで囲む必要があります。使用例を示します。
インクルードする側
<uji:list bean="body" property="listData" >
<uji:listRenderer type="element">
<uji:include />
</uji:listRenderer>
</uji:list>インクルードされる側
<%@ page contentType="text/html; charset=shift_jis" %>
<%@ taglib uri="uji-taglib" prefix="uji" %>
<uji:includedBody>
<uji:composite>
<uji:compositeRenderer>
....
</uji:compositeRenderer>
</uji:composite>
</uji:includedBody>この例ではリスト画面部品の中でuji:includeを使用しているので、リスト項目のデータBeanと表示モードに従ってページマップで指定された入出力ページがインクルードされます。インクルードされたページではuji:includedBodyタグで囲むことによって、リスト項目のデータBeanが利用可能となり、uji:compositeでデータBeanを引き継ぐ、uji:getPropertyを使用するなどの方法で画面項目を設定します。