TOP
>
システム開発
> orderメソッド
Nexaweb Studioで手軽にリッチクライアントアプリケーション開発
第3回:サンプルからNexawebの機能を学ぶ
著者:
チェンジビジョン 岩永 寿来、豆蔵 長谷川 裕一
2007/6/12
前のページ
1
2
3
4
次のページ
orderメソッド
次にorderメソッドにcom.nexaweb.xml ElementクラスのmenuTableという引数を持たせます。この引数menuTableはメニュー画面のメニューテーブルを引き渡します。つまり注文確認ボタンが押されたときのメニューテーブルのデータをorderメソッドに渡すということになります。
orderメソッドでは、メニューテーブルの選択チェックボックスがチェックされた行のデータの商品名と単価をメッセージボックスで表示してみましょう。
NexawebではXPathFactoryクラスを用いてXPathを利用できます。ElementクラスはXMLのタグにあたるので、Elementクラスに対してXPathFactoryを利用して、XPathで任意のデータを取得できます。
リスト5では、メニューテーブルの行を取得し(リスト5の1)、選択チェックボックスが選択されている行だけを抽出し(リスト5の2)、その行の1番目の列、商品名と2番目の列、単価を取得して(リスト5の3)、メッセージボックスで表示させています(リスト5の4)。
リスト5:OrderMco#order
(画像をクリックすると別ウィンドウに拡大図を表示します)
MCOへのデータ引渡し
OrderMcoクラスのorderメソッドの引数として渡されるメニューテーブルは注文確認ボタンが押されたとき、onCommandイベントでMCOを呼び出す際にメニューテーブルを引き渡します。実際の例ではリスト6の1でメニューテーブルに「menu」というIDをつけています。このIDをリスト6の2のようにorderメソッドのパラメータに指定します。
リスト6:MCOにメニューテーブルを渡す
(画像をクリックすると別ウィンドウに拡大図を表示します)
このMCOを利用することで、金額に消費税を掛け合わせるとか、入力された値のバリデーション、画面遷移などが、Ajaxのように非同期で画面のデータを更新するなどの処理をクライアント側で行えるようになります。
データバインド
先ほどの注文画面では、メニューの一覧テーブルに表示するデータをハードコーディングしていました。次はテーブルなどのUIにデータをはめ込んで(バインド)して見ましょう。
まずはNexawebにどのようなデータの処理や加工に関する機能が備わっているか見てみましょう。NexawebにはData Frameworkと呼ばれる機能が存在します。Data Frameworkには、以下の4つの機能が備わっています。
データソースを定義できる機能
テーブルやラベルなどのUIにデータをバインドできる機能
データのフォーマット機能
データが更新されたときに、UIにバインドされているデータを更新する機能
表1:Data Frameworkに備わっている機能
まずここではデータソースを定義できる機能とデータをバインドできる機能について紹介します。
データソースを介して、画面(NXML)でデータを取得できるのですが、データソースはJavaでおなじみのjavax.sql.Datasourceと同じようなもので、データの供給先を定義するものです。今回はNXMLファイルと同じディレクトリに配置されたXMLファイルからデータを供給するデータソースを定義してみます。
一般的な開発では、データベースから取得したデータをサーバ側から供給してもらうことが多いと思います。この場合、Servletをデータソースとして利用し、Servletではデータベースから取得したデータをXMLとしてデータソースに供給する方法などで行えます。この方法については次回説明します。
前のページ
1
2
3
4
次のページ
著者プロフィール
株式会社チェンジビジョン 岩永 寿来
モデリングツールJUDEを開発しているチェンジビジョンで、ソフトウェア開発プロジェクトの見える化を支援するTRICHORDを開発している。最近は2DやJOGLなど3D技術に興味があり、クールなUIやエフェクトを日々探求している。共著として「Spring入門(技術評論社)」、「Spring2.0入門(技術評論社)」。
著者プロフィール
株式会社豆蔵 長谷川 裕一
XMLの技術開発やCORBA、EJBを使用したシステム開発などを経て、現在はアジャイル開発プロセスの導入から工学的なソフトウエアプロセスの策定、オープンソースプロダクトに関するコンサルタント、アーキテクトとして常に第一線で活躍。共著として「プログラムの育てかた 現場で使えるリファクタリング(ソフトバンク)」、「Spring入門(技術評論社)」。
INDEX
第3回:サンプルからNexawebの機能を学ぶ
Nexawebでる注文システムを作る
メニューテーブル用のデータを用意する
orderメソッド
データソースの定義