# 練習問題 業務仕様書 ## 1. 概要 ショッピングサイトのように、商品と個数を送信すると、金額/送料有無が分かる簡易システムを構築する。 ![](https://infotechfactory.biz/img/javaweb/4-4.png) ### 追加要件 入力後は、購入金額、送料有無だけでなく、商品名を表示させること。 __表示イメージ__ ``` 商品:ボールペン 購入金額:600円 送料は無料です。 ``` また、入力個数は、選択ではなく、任意で入力できるようにすること。 ただし、数字以外の入力は認めない(テキストボックスからカーソルアウトした時点で、適切でない場合はエラーとすること)。エラーは個数の下に以下の通り表示させる。 __入力違反時のエラーメッセージ__ 『個数は半角数字で入力してください。』 未入力チェックはHTML標準「required」でチェックすること。 上記チェックは、サーバ側でもバリデーションチェックすること。 ## 2. データベース設計 データベースは、以下の通りに定義すること * DB名:ONL_SHOP * TBL名:PRODUCT * テーブル定義:以下の通り |項目名|DTL_CD|DTL_NM|PRICE| |---|---|---|---| |日本語名|商品コード|商品名|価格| |型|CHAR(4)|VARCHAR(5)|INT(11)| |その他|PK,NN|NN|NN| > * PK: PRIMARY KEY > * NN: NOT NULL また、テーブルにはあらかじめ、以下の商品情報を格納しておく。 |DTL_CD|DTL_NM|PRICE| |---|------- | -------- | |CD01|鉛筆|60| |CD02|ボールペン|120| |CD03|消しゴム|80| |CD04|定規|150| ## 3. 処理の大まかな流れ 1. ユーザはプルダウンから商品を選択し、個数を入力する。 2. 「購入」を押下すると、商品コードと個数がサーバにPOST送信される。 3. 商品コードをデータベースに問い合わせ、商品名と金額を取得する。 4. 金額✕個数で購入金額を算出する。 5. 商品、購入金額を表示させる。このとき、購入金額が500円以上の場合は「送料は無料です。」、500円に満たない場合は「送料は別途かかります。」と表示する。 ## 4. 必要資源 (ファイル名は任意で決めてください) __フロントエンド__ * 商品選択ページ用HTML * 合計金額表示用HTML * 個数入力判定用JavaScript __バックエンド__ * Controller用Java * Service用Java * Repository用Java * 商品選択ページからの値受取用のFormクラス * SQL結果取得用のEntityクラス