Webアプリケーション構築演習
2008年6月9日 月曜日 | その他
こんばんは、技術統括部の豊田です。
4月からの新入社員技術研修も早いもので3ヶ月目に突入しました。
Javaの基本的な文法、Webアプリケーションへの応用などを終え、
現在はデータベースやフレームワークなどを勉強しています。
先日Javaのまとめとして、簡単なECサイト(もどき?)を作成する
演習を行いました。ふり返りもかねてレポートしたいと思います。
主な機能要件が、
1. DBから商品リストを取得して一覧表示する。
2. 購入商品を保持するショッピングカート機能。
3. 届け先入力画面
4. 確認画面と購入完了画面
環境が、
1. Tomcat + DB2
2. テキストエディタ(IDE禁止)
さらに、評価ポイント、
1. セッション管理
2. MVCモデル
3. オブジェクト指向設計
4. 読みやすいコード(コメント、JavaDoc)
最初の難関はクラス設計、
まずMVCのM(モデル)の部分。
1. Itemクラス
2. SelectItemクラス(カートに入れられた商品)
3. カート
こんな感じしてみました。
クラス図にすると、
MVCのViewを担う画面まわりはJSPで記述。
ポイントはViewにロジックを書かないこと。
JavaBeanに詰めたデータをJSTLとEL式でJSPに表示するだけ。
こんな感じでしょうか、
<div>
<c:forEach var=”selectItem” items=”${selectItem}” varStatus=”statusOut”>
商品名:<c:out value=”${selectItem.name}” />
単価:<c:out value=”${selectItem.price}” />円
数量<c:out value=”${selectItem.amount}” />個
計:<c:out value=”${selectItem.totalPrice}” />円
</c:forEach>
</div>
最後の難関はC(Controller)。
これが一番難しかった。
画面遷移を管理する方法として、現在地(c_page)のパラメータをセッションにもって、
画面を遷移させるリンクのGETパラメータに、次画面を呼び出すパラメータ(n_page)を
リクエストに持たして管理しました。
この2つのパラメータの値によって、Controller側で処理を振分けました。
でも、画面が増える毎にControllerのdoGetメソッドが冗長になってしまい、
可読性が低いコードになってしまいました。
講師の方にアドバイスによると、
ページの概念をインターフェースに抽出し、
ページ毎にオブジェクトを生成して管理するやり方がベターとのこと。
今日からStrutsを学んでいます。
ページ遷移の管理や、JavaBeanへのマッピングなどを
意識せずにコーディングできるフレームワークの偉大さを
しみじみと感じている今日この頃です。