ページの先頭行へ戻る
 ApcoordinatorUJIタグリファレンス
FUJITSU Software

3.1 uji:table

uji:tableについて説明します。uji:tableには、以下の機能があります。

基本機能

uji:tableタグは、データを表形式に展開するための画面部品タグです。uji:tableタグは以下の動作をします。

  1. beanとpropertyで指定されたデータBeanのプロパティを取得します。取得したオブジェクトはTableModelインタフェースを持つ必要があります。TableModelインタフェースの代わりに外付け属性を利用する方法については、“Apcoordinatorユーザーズガイド”を参照してください。

  2. 取得したTableModelインタフェースより、表の大きさ(行、列数)を取得します。

  3. uji:tableタグのコンテントにtype="table"のレンダラ(uji:tableRendererタグによる展開形の指定)があれば、その内容を展開します。なければデフォルトの形式を展開します。

  4. 展開形の中にuji:childrenタグがあれば、キャプションを展開したあと、行の展開をします。キャプションは、type="caption"のレンダラがあれば、その内容を展開します。

  5. 行の展開では、type="row"のレンダラがあれば、その内容を展開します。これは行数だけ繰り返します。
    展開前にTableModelインタフェースより行のクラス(データ属性)を取得します。これがclsアトリビュートの指定と一致するレンダラが使用されます。一致するレンダラがなければ、デフォルトの形式を展開します。

  6. 行の展開形の中にuji:childrenタグがあれば、セルの展開をします。type="column"のレンダラがあれば、その内容を展開します。各行について列数だけ繰り返します。展開前にTableModelインタフェースよりセルのクラス(データ属性)を取得します。これがclsアトリビュートの指定と一致するレンダラが使用されます。一致するレンダラがなければデフォルトの形式を展開します。

uji:tableタグは、HTMLのFORMタグ、またはuji:formタグの中に記述します。

アトリビュート

uji:tableタグのアトリビュートは以下を指定します。

アトリビュート名

省略

意味

省略時の動作

bean

データBeanのJSP変数を指定します。

画面部品タグのカレントオブジェクトを使用します。

property

データBeanのプロパティ名を指定します。指定したプロパティはTableModelインタフェースを持つオブジェクトを返す必要があります。

データBean自体がTableModelインタフェースを持つオブジェクトとして使用されます。

コンテント

uji:tableタグのコンテントにはuji:tableRendererタグを0個以上記述します。それ以外のタグは記述できません。

使用例

JSP

<uji:table bean="body" property="tableModelProp" >
   <uji:tableRenderer type="column" cls="header" >
       <TH><uji:value /></TH>
   </uji:tableRenderer>
   <uji:tableRenderer type="column" >
       <TD><uji:value /></TD>
   </uji:tableRenderer>
</uji:table>
注意事項

beanアトリビュートは、他の画面部品タグのレンダラの中で、カレントオブジェクトが利用できる場合にのみ省略できます。

XML連携機能

uji:tableタグは、データを表形式に展開するための画面部品タグです。uji:tableタグは以下の動作をします。

  1. beanが保持するXMLツリーからpropertyまたはxpathで指定された要素を取得し、テーブル情報として使用します。

  2. テーブル情報の子要素を行とします。行の子要素をセルとします。

  3. 表の大きさ(行、列数)を取得します。テーブル情報の子要素数を行数、最初に出現する行の子要素数を列数とします。

  4. uji:tableタグのコンテントにtype="table"が指定されたレンダラ(uji:tableRendererタグ)があれば、そのコンテントを画面に展開します。なければデフォルトの形式で展開します。

  5. 行の展開では、type="row"が指定されたレンダラ(uji:tableRenderer)があれば、その内容を画面に展開します。これは行数だけ繰り返します。 展開時には、行となる要素の要素名を取得し、その要素名がclsアトリビュートの指定と一致するレンダラが使用されます。一致するレンダラがなければ、デフォルトの形式で展開します。

  6. type="row"のレンダラ中にuji:childrenタグがあれば、セルの展開をします。type="column"のレンダラがあれば、その内容を画面に展開します。各行について列数だけ繰り返します。セルとなる要素の要素名を取得し、その要素名がclsアトリビュートの指定と一致するレンダラが使用されます。一致するレンダラがなければデフォルトの形式で展開します。

  7. type="column"が指定されたレンダラ内では、セルとなる要素がカレントオブジェクトとなります。

イベントモデルではXML連携機能は利用できません。

アトリビュート

uji:tableタグでは、XML連携機能を使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。

アトリビュート名

省略

意味

省略時の動作

bean

データBeanまたはXMLデータBeanのJSP変数を指定します。(*)

カレントオブジェクトを使用します。

property

テーブル情報として使用する要素をルート要素の子要素名で指定します。(*)

ルート要素を使用します。

xpath

テーブル情報として使用する要素をルート要素からの相対パスで指定します。(*)

ルート要素を使用します。

(*)“7.4.1 使用するXML要素の指定方法”を参照してください。

XMLデータの構造
  • propertyまたはxpathには複合要素を指定します。指定された要素がテーブル情報になります(*1)。

  • テーブル情報の子要素が行になります。子要素数が行数になります。

  • 行のn番目の子要素がn列目のセルになります。最初に出現する行の子要素数が列数になります。

  • 2行目以降で行の子要素数が列数より多い場合、余分な要素は使用されません。

  • 2行目以降で行の子要素数が列数より少ない場合、不足したセルのデータはnullになります。この場合、不足したセルに対してデータの入力を行なうことはできません。

  • type="column"が指定されたuji:tableRendererタグのコンテントでは、セルとなる要素がカレントオブジェクトになります。

    • セルとなる要素が単純要素の場合、その内容の文字列(Stringクラスのオブジェクト)がカレントオブジェクトになります。ただし、要素の内容に改行が含まれる場合、改行の直前までが使用されます。

    • セルとなる要素が複合要素の場合、その複合要素を保持するXMLデータBeanがカレントオブジェクトになります。

(*1) 要素の集合を指定した場合の動作は“7.4.3 要素や属性の集合を指定した場合の動作”を参照してください。

使用例

XML

<root>
  <table>
    <row>
      <no>1</no>
      <code>12345</code>
      <count>1</count>
      <date>未定</date>
    </row>
    <row>
      <no>2</no>
      <code>67890</code>
      <count>5</count>
      <date>未定</date>
    </row>
  </table>
</root>

JSP

<uji:table bean="body" xpath="table">
  <uji:tableRenderer type="column">
    <TD><uji:value /></TD>
  </uji:tableRenderer>
  <uji:tableRenderer type="column" cls="date">
    <td><input name="<uji:name/>" value="<uji:value/>" ></td>
  </uji:tableRenderer>
</uji:table>

表示画面

イベントモデル

uji:tableタグは、データを表形式に展開するための画面部品タグです。

uji:tableタグの動作については、“基本機能”を参照してください。

アトリビュート

uji:tableタグは、イベントモデルで使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。

アトリビュート名

省略

意味

省略時の動作

bean

managed beanの名前を指定します。

画面部品タグのカレントオブジェクトを使用します。

property

managed beanのプロパティ名を指定します。

managed bean自体がTableModelインタフェースを持つオブジェクトとして使用されます。

id

コンポーネントのIDを指定します。

自動的に付与されます。

コンテント

uji:tableタグのコンテントには以下のタグが記述できます。

  • uji:tableRenderer(0個以上)

使用例

JSP

<f:view>
  <uji:table bean="myBean" property="tableModelProp" >
    <uji:tableRenderer type="column" cls="header" >
      <TH><uji:value /></TH>
    </uji:tableRenderer>
    <uji:tableRenderer type="column" >
      <TD><uji:value /></TD>
    </uji:tableRenderer>
  </uji:table>
</f:view>