« viewstate と viewcollection | メイン | ColdSpring »

とりあえず、動くもの

サンプルアプリケーション
これまでの情報から、ものすごくシンプルなアプリケーションを作ってみた。
商品リストから商品を選んで、カートに入れるというよくあるカートアプリケーション。

作成したイベントは3つ。

 CartInsert
 CartDeleteItem
 CartDeleteAll

メッセージは、4つ。

 ItemList
 CartInsertAction
 CartDeleteItemAction
 CartDeleteAllAction

これらは、ModelGule.xml から見つけることができる。
Controller.cfc に、メッセージに対応する関数を一つずつで、4つの関数。
ロジックとして、CartProcess.cfc に、ロジックの関数として3つ。
データベースを使わなかったために、商品リストを保持する Common.cfc を作成。

やはり、これぐらいの規模の仕組みでは、フレームワークのメリットを感じることはできなかったが、Model-Glueの基本的な作り方は、把握できた。

dspIndex.cfm で商品リストを表示する際に、Controller.cfc の getItemList 関数で、変数 itemMasterArray に、
arguments.event.setValue("itemMasterArray", ★商品の一覧データ★)で、レスポンスデータに保存。
dspIndex.cfm の viewstate.getValue("itemMasterArray") で商品の一覧データを取得する。

商品を選択すると、イベント CartInsert で、商品IDをポストリクエスト送信すると、メッセージ CartInsertAction が発生する。
Controller.cfc の関数 cartInsertItem によって、ロジックのモデル CartProcess.cfc のインスタンスを生成し、
arguments.event.getValue("itemid") でポストデータ itemid を取得して、関数 insertItem に渡す。関数 insertItem からは、
カートのデータが戻ってくるので、arguments.event.setValue("cartData", ★カートのデータ★) で、画面に変数 cartData で渡す。

他のイベントの場合も、似たような感じになっている。
いわゆる、MVCが構築されているわけになるが、当然、理想は、理想で、実際にシステムを作っていく上では、
こんなにきれいに分かれないだろう。
ここでポイントになるのは、VとCの流れの調整を ModelGlue.xml だけで行うということだろうか。
ModelGlue.xml では、Mのモデル(ロジック)部分のことは、制御外になっている。コントローラーの先は、作り手次第になっている。

トラックバック

このエントリーのトラックバックURL:
http://www.schwarzmond.info/mt/mt-tb.cgi/44

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年04月21日 10:12に投稿されたエントリーのページです。

ひとつ前の投稿は「viewstate と viewcollection」です。

次の投稿は「ColdSpring」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。