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

3.9 uji:composite

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

基本機能

uji:compositeタグは、複合Bean形式のデータBeanを操作するための画面部品タグです。複合Bean形式とは、データBeanのプロパティが別のデータBeanのクラスとなっているものをいいます。言い換えれば、データBeanの入れ子構造を意味します。 uji:compositeタグは以下の動作をします。

  1. beanとpropertyで指定されたデータBeanのプロパティを取得します。これをカレントオブジェクトとします。

  2. uji:compositeNameタグによるデータBeanの更新をサポートします。

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

アトリビュート

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

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.4.1 使用するXML要素の指定方法”を参照してください。

XMLデータの構造
  • propertyまたはxpathには単純要素または複合要素を指定します(*1)。

  • uji:compositeRendererタグのコンテントでは、propertyまたはxpathで指定した要素がカレントオブジェクトとなります。

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

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

(*1) 要素の集合を指定した場合の動作は“7.4.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>