基本機能
uji:listタグは、リスト形式のデータを展開するための画面部品タグです。uji:listタグは以下の動作をします。
beanとpropertyで指定されたデータBeanのプロパティを取得します。取得したオブジェクトはListModelインタフェースを持つ必要があります。ListModelインタフェースの代わりに外付け属性を利用する方法については、“Apcoordinatorユーザーズガイド”を参照してください。
uji:listタグのコンテントにtype="list"のレンダラ(uji:listRendererタグによる展開形の指定)があれば、その内容を展開します。なければデフォルトの形式を展開します。展開形の中にuji:childrenタグがあれば、リストの展開をします。
リストの展開では、インタフェースよりリスト要素の数を取得します。要素数の分だけ、type="element"のレンダラを展開します。展開時にはインタフェースより要素のクラス(データ属性)を取得し、これがclsアトリビュートの指定と一致するレンダラが使用されます。
uji:listタグは、HTMLのFORMタグか、uji:formタグまたはuji:mcFormタグの中に記述します。
uji:listタグのアトリビュートは以下を指定します。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | データBeanのJSP変数を指定します。 | 画面部品タグのカレントオブジェクトを使用します。 |
property | 可 | データBeanのプロパティ名を指定します。指定したプロパティはListModelインタフェースを持つオブジェクトを返す必要があります。 | データBean自体がListModelインタフェースを持つオブジェクトとして使用されます。 |
uji:listタグのコンテントにはuji:listRendererタグを0個以上記述します。それ以外のタグは記述できません。
JSP
<uji:list bean="body" property="listModelProp" > <uji:listRenderer type="list" > <ul><uji:children /></ul> </uji:listRenderer> <uji:listRenderer type="element" > <li><uji:value /> </uji:listRenderer> </uji:list>
beanアトリビュートは、他の画面部品タグのレンダラの中で、カレントオブジェクトが利用できる場合にのみ省略できます。
XML連携機能
uji:listタグは、リスト形式のデータを展開するための画面部品タグです。uji:listタグは以下の動作をします。
beanが保持するXMLツリーからpropertyまたはxpathで指定された要素を取得し、リスト情報として使用します。
リスト情報の子要素がリスト項目になります。
uji:listタグのコンテントにtype="list"が指定されたレンダラ(uji:listRendererタグ)があれば、その内容を画面に展開します。なければデフォルトの形式を展開します。レンダラの中にuji:childrenタグがあれば、リスト項目を展開します。
リスト項目の展開では、リスト項目の数だけ、type="element"が指定されたレンダラを展開します。展開時にリスト項目の要素名を取得し、uji:listRendererのclsアトリビュートと比較され、値が一致するuji:listRendererタグが展開時に使用されます。
type="element"が指定されたレンダラ内では、リスト項目となる要素がカレントオブジェクトになります。
イベントモデルではXML連携機能は利用できません。
uji:listタグでは、XML連携機能を使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | データBeanまたはXMLデータBeanのJSP変数を指定します。(*) | カレントオブジェクトを使用します。 |
property | 可 | リスト情報として使用する要素をルート要素の子要素名で指定します。(*) | ルート要素を使用します。 |
xpath | 可 | リスト情報として使用する要素をルート要素からの相対パスで指定します。(*) | ルート要素を使用します。 |
(*)“7.6.1 使用するXML要素の指定方法”を参照してください。
propertyまたはxpathには複合要素を指定します(*1)。指定された要素がリスト情報として使用されます。
リスト情報の子要素がリスト項目となります。
type="element"が指定されたuji:listRendererタグのコンテントでは、リスト項目となる要素がカレントオブジェクトとして使用されます。
リスト項目となる要素が単純要素の場合、その内容の文字列(Stringクラスのオブジェクト)がカレントオブジェクトになります。要素の内容に改行が含まれる場合、改行の直前までが使用されます。
リスト項目となる要素が複合要素の場合、その複合要素を保持するXMLデータBeanがカレントオブジェクトになります。
(*1) 要素の集合を指定した場合の動作は“7.6.3 要素や属性の集合を指定した場合の動作”を参照してください。
XML
<root> <title>リスト表示</title> <list> <li>標準1</li> <red>あか</red> <li>標準2</li> </list> </root>
JSP
<uji:list bean="body" xpath="list" > <uji:listRenderer type="list" > <ul><uji:children /></ul> </uji:listRenderer> <uji:listRenderer type="element" cls="red" > <li style="color:red"><uji:value /></li> </uji:listRenderer> <uji:listRenderer type="element" > <li><uji:value /></li> </uji:listRenderer> </uji:list>
表示画面
イベントモデル
uji:listタグは、リスト形式のデータを展開するための画面部品タグです。
uji:listタグの動作については、“基本機能”を参照してください。
uji:listタグは、イベントモデルで使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | managed beanの名前を指定します。 | 画面部品タグのカレントオブジェクトを使用します。 |
property | 可 | managed beanのプロパティ名を指定します。 | managed bean自体がListModelインタフェースを持つオブジェクトとして使用されます。 |
id | 可 | コンポーネントのIDを指定します。 | 自動的に付与されます。 |
uji:listタグのコンテントには以下のタグが記述できます。
uji:listRendererタグ(0個以上)
JSP
<f:view> <uji:list bean="myBean" property="listModelProp" > <uji:listRenderer type="list" > <ul><uji:children /></ul> </uji:listRenderer> <uji:listRenderer type="element" > <li><uji:value /> </uji:listRenderer> </uji:list> </f:view>