ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

16.5.1 基本的な使用方法

画面部品タグやコンポーネントタグでは、通常のデータBeanと同様にXMLデータBeanを使用することができ、XMLデータを表示したり、入力データでXMLを更新したりすることが可能です。XML内のどのデータをタグで使用するかは、XPathを使って指定します。以下のタグでXMLデータが利用できます。

タグ

機能

uji:table

表形式のデータを画面に展開

uji:tree

ツリー構造のデータを画面に展開

uji:list

リスト形式のデータを画面に展開

uji:switch

条件によって異なる画面を展開

uji:composite

XMLデータBeanの一部の取り出し

uji:compositeName

XMLデータBeanの一部を更新するための入力項目名を生成

uji:value

画面展開中の値を表示

uji:getProperty

XML要素の内容を表示

uji:name

画面展開中のデータを更新するための入力項目名を生成

uji:input

クライアントスクリプトを記述する場合にHTMLのINPUTタグの代わりに使用

uji:textarea

クライアントスクリプトを記述する場合にHTMLのTEXTAREAタグの代わりに使用

uji:select

クライアントスクリプトを記述する場合にHTMLのSELECTタグの代わりに使用

uji:fieldString

文字列入力フィールド

uji:fieldEJString

外字対応文字列入力フィールド

uji:fieldLong

整数入力フィールド

uji:fieldDouble

実数入力フィールド

uji:fieldBigInteger

十進整数入力フィールド

uji:fieldBigDecimal

十進数入力フィールド

uji:fieldDate

日付・時刻入力フィールド

uji:fieldTextArea

複数行テキスト入力フィールド

uji:checkBox

チェックボックス

uji:radioButton

ラジオボタン

uji:pushButton

プッシュボタン

uji:anchor

アンカー

uji:comboBox

コンボボックス

uji:listBox

リストボックス

uji:buttonList

ボタンリスト

uji:recordView

レコードビュー

uji:tableView

テーブルビュー

uji:treeView

ツリービュー

注意

  • 次のいずれかのタグを使用してXMLデータの更新を行う場合、XMLデータに名前空間を使用することはできません。

    • uji:getProperty

    • uji:fieldTextArea

    • uji:comboBox

    • uji:listBox

    • uji:buttonList

  • uji:fieldEJStringタグでXMLデータを利用し、かつ、Fujitsu XML プロセッサを使用する場合は、XMLデータの文字コードに以下のどちらかを使用してください。

    • UTF-8

    • UTF-16

以下のXMLを例にして、基本的な入出力の方法を説明します。

このXMLデータのname要素を表示し、price要素の内容を入力するアプリケーションを例として説明します。ビジネスクラスでは、XMLデータBeanを作成します。以下の例では、XMLをWEB-INFフォルダ直下に置いたファイル"catalog.xml"から読み込み、作成したXMLデータBeanに"body"という名を付けています。

入出力ページでは、name要素の表示にはuji:getPropertyを、price要素の入力にはuji:fieldStringを使用します。以下は入出力ページの例です。

uji:getPropertyタグで表示するXMLデータの要素を指定するには、タグのbeanアトリビュートとxpathアトリビュートを使用します。beanアトリビュートにはXMLデータBeanに付けた名前を指定します。そのXMLデータBean内のどの要素を表示するかは、xpathアトリビュートにXPathで指定します。このXPathは、beanアトリビュートで指定したXMLデータBeanのルート要素からの相対パスで指定します。

ポイント

xpathアトリビュートを省略した場合には、beanで指定したXMLデータBeanのルート要素がタグで使用されます。beanアトリビュートを省略した場合は、カレントオブジェクトが代わりに使用されます。

注意

XMLデータBean使用時は、コマンドマップとページマップの書き方が通常とは異なります。詳しくは“関係定義ファイルの書き方”を参照してください。

ブラウザの表示は次のようになります。

文字列入力フィールドやテキストエリアなどの入力部品用のタグでXMLデータを使用すると、入力されたデータでXMLが更新されます。上記の例ではuji:fieldStringがprice要素を使用しています。したがって、ブラウザで"5250"と入力して更新ボタンを押すと、XMLデータBean内のprice要素が更新されて次のようになります。

フォームに必要なリクエストパラメタ

フォームを作成する際は、通常のデータBeanを利用した場合と同様に、必要に応じてリクエストパラメタuji.id、uji.verbsが送信されるようにしてください。<input type="hidden">タグを記述することによってこれらのリクエストパラメータを送信させることができます。新規作成したXMLデータBeanに入力データを格納する場合は、リクエストパラメタuji.bean、uji.xmlBeanの値を以下のように与えてください。

関係定義ファイルの書き方

XMLデータBeanを使う場合は、コマンドマップとページマップの書き方が通常とは異なります。データBeanのクラス名(com.fujitsu.uji.xml.XmlDataBean)の代わりにXMLデータBeanのルート要素の要素名を使い、その要素名の先頭に"/"を付加します。ルート要素が"catalog"であるXMLデータBeanを使った例を示します。

複数のデータの組を扱うタグ

以下は、リストやテーブルなどの複数のデータの組を必要とするタグです。これらのタグでXMLデータを利用するには、それぞれのタグに合わせた構造のXMLを使用する必要があります。

タグ

説明

uji:comboBox

コンボボックス

uji:listBox

リストボックス

uji:buttonList

ボタンリスト

uji:recordView

レコードビュー

uji:tableView

テーブルビュー

uji:treeView

ツリービュー

uji:table

表形式のデータを画面に展開

uji:list

リスト形式のデータを画面に展開

uji:tree

ツリー構造のデータを画面に展開

各タグが必要とするXMLデータの構造は、“UJIタグリファレンス”を参照してください。ここでは、uji:comboBoxを例にしてXMLデータの表示方法、入力方法、必要となるXMLデータの構造を説明します。

以下は、コンボボックスを表示するのに必要なXMLデータとタグの例です。

コンボボックスの選択肢として表示されるデータはuji:comboBoxのxpathアトリビュートで指定します。xpathで指定した要素の子要素がそれぞれ選択肢として使用されます。上記の例では、sports要素内のdata要素3個が選択肢になります。

selectedXPathアトリビュートは、選択状態の保存先となる要素をXPathで指定します。この指定はbeanアトリビュートで指定したXMLデータBeanのルート要素からの相対指定です。上記の例では、selected要素が保存先となります。リクエスト処理時には、コンボボックスで選択された選択肢の表示文字列によってselected要素の内容が書き換えられます。画面表示時には、デフォルトで選択されている選択肢としてselected要素の内容が使われます。

コンボボックスに表示される文字列と、selectedXPathで指定した要素に保存される文字列を別にしたい場合は、uji:comboBoxのvalueAttrアトリビュートを使います。選択肢となる要素の属性名をvalueAttrに指定すると、その属性の値が選択状態の保存時に使われます。上記の例で「野球」が選択されたときにselected要素に「baseball」が保存されるようにするには、以下のように記述します。

選択された要素の属性に選択状態を保存するには、selectedXPathで@に続けて属性名を記述します。前述のコンボボックスで、「野球」が選択されたときに要素"<data>野球</data>"のselected属性の値がtrueになるようにするには、以下のように記述します。

xpathアトリビュートやselectedXPathアトリビュートで指定する要素は、以下の条件を満たす必要があります。

注意

uji:comboBoxに限らず、どのタグでも使用する要素は複合要素または単純要素です。混合要素を使用するタグはありません。

ポイント

uji:comboBoxのように項目クラスが必須となるタグでも、XMLデータBeanを使用する場合は項目クラスが必須ではありません。ただし、項目クラスを使用した方が性能が上がります。また項目クラスを使用して表示属性などを動的に変更することも可能です。項目クラスでXMLを利用する方法については“16.5.2 XML用の項目クラス”を参照してください。

指定した要素が存在しない場合の動作

xpathアトリビュートで指定された要素や、selectedXPathアトリビュートで指定された要素または属性が存在しなかった場合、データの表示と更新は次のように実行されます。