TOPシステム開発> データソースの定義
Nexaweb Studio
Nexaweb Studioで手軽にリッチクライアントアプリケーション開発

第3回:サンプルからNexawebの機能を学ぶ

著者:チェンジビジョン  岩永 寿来、豆蔵  長谷川 裕一
2007/6/12
前のページ  1  2  3  4
データソースの定義

   データソースを定義するには、XMLデータを扱うdocumentDataSourceタグと、Javaのオブジェクトを扱うobjectDataSourceの2種類が用意されていますが、今回はdocumentDataSourceタグを利用します。

   documentDataSourceタグは、リスト8の1のようにid、source属性を用いて定義します。id属性はデータソースを一意に特定するIDを指定します。今回はproductsとし、source属性はデータの供給先を指定します。注文画面が配置されるディレクトリ、Web-Contentの下に置いたproducts.xml(リスト7)をデータの供給先として設定しています。
リスト7:product.xml
<?xml version="1.0" encoding="UTF-8"?>
<products>
    <product>
        <name>鶏のから揚げ</name>
        <price>200</price>
    </product>
</products>

   このように定義されたデータソースからデータを取得するには「DataServcie.bind」を利用します(DataService.bindはbindと省略できます)。リスト8の2はテーブル1行の「商品」列と「単価」列に、product.xmlで定義されている「product / name要素」、「product / price」要素をバインドしている箇所です。

   bindではバインドするデータを取得するデータソースを「dataSource」で指定し、データソースから取得したデータへのクエリを「select」にXPath形式で指定します。

リスト8:XMLファイルをデータソースとする定義
リスト4:OrderMco
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ここまで説明した方法ではテーブル1行のデータしかバインドしていません。そこで最後に、メニューテーブルのデータをXMLから取得した複数の商品データから取得して表示してみましょう。複数のデータを反復させて、データをバインドするにはiteratorタグを用います。iteratorタグではdataSource属性でデータソースを指定し、selectで反復するデータを選択します。

   例としてリスト7のproduct.xmlのproduct要素をコピーし、好きな商品のXMLデータを作成してください。次に、リスト9のようにrowタグを「iteratorタグ」で囲みます。

リスト9:iteratorタグを用いたデータバインド
リスト4:OrderMco
(画像をクリックすると別ウィンドウに拡大図を表示します)

   product.xmlからデータを供給するデータソースは「product」なので、iteratorタグのdataSource属性に「product」を指定し、iteratorタグで反復させて扱うデータは商品にはproduct.xmlから商品1つをあらわすproduct要素を取得するため、select属性に「//product」と指定しているのです。

   iteratorタグには他にもデータソースが供給するデータが更新されたときにUIにバインドさせたデータも更新させる機能などが備わっているので、ドキュメントを参照しながら試してみてください。


まとめ

   今回はMCOとデータバインドを説明しました。得てしてクライアント側のモジュールは専用の言語などで定義しなければならない場合が多いのですが、NexawebではMCOというJavaのモジュールとして定義できるのは便利といえるでしょう。データバインドもシンプルな点は良いのですが、タグを間違えた場合に表示されるエラーがややわかりにくいのは気になります。このように現在のNexawebではエラーから原因を特定するのが少々難しいという部分があります。この点については今後改善されていくでしょう。

   もしデバッグで困った場合は、Nexaweb Client上で表示されている画面をアクティブにして、F1キーを押します。すると標準出力に現在表示されている画面のNXMLが表示されるので活用してみてください。

   次回はデータベースから取得したデータをデータソースとする方法やSpringとの連携、フォーマットなどについて説明する予定です。

前のページ  1  2  3  4


株式会社チェンジビジョン 岩永 寿来
著者プロフィール
株式会社チェンジビジョン  岩永 寿来
モデリングツールJUDEを開発しているチェンジビジョンで、ソフトウェア開発プロジェクトの見える化を支援するTRICHORDを開発している。最近は2DやJOGLなど3D技術に興味があり、クールなUIやエフェクトを日々探求している。共著として「Spring入門(技術評論社)」、「Spring2.0入門(技術評論社)」。


株式会社豆蔵 長谷川 裕一
著者プロフィール
株式会社豆蔵  長谷川 裕一
XMLの技術開発やCORBA、EJBを使用したシステム開発などを経て、現在はアジャイル開発プロセスの導入から工学的なソフトウエアプロセスの策定、オープンソースプロダクトに関するコンサルタント、アーキテクトとして常に第一線で活躍。共著として「プログラムの育てかた 現場で使えるリファクタリング(ソフトバンク)」、「Spring入門(技術評論社)」。


INDEX
第3回:サンプルからNexawebの機能を学ぶ
  Nexawebでる注文システムを作る
  メニューテーブル用のデータを用意する
  orderメソッド
データソースの定義