LEXUES BLOG

レキサスブログ

Webアプリケーション構築演習

こんばんは、技術統括部の豊田です。

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. カート

こんな感じしてみました。
クラス図にすると、

class

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へのマッピングなどを
意識せずにコーディングできるフレームワークの偉大さを
しみじみと感じている今日この頃です。

この記事のライター

みなさまからのご連絡をお待ちしております。

CONTACT US