FrontPage

Cart問題

Agile Web Development with Railsの例題と同じ問題をSpringを使って実装を試みたときの メモです。

もう一つの目的は、Spring-MVCプラグインがどの程度実際の問題解決に役立つかを検証することです。

プロジェクトの作成

mavenを使ってプロジェクトを生成します。

とします。ecliseでプロジェクトを管理できるようにeclipseプラグインも起動します。

mvn archetype:create \
	-DgroupId=example.cart \
	-DartifactId=cart \
	-DarchetypeArtifactId=spring-mvc-archetype \
	-DarchetypeGroupId=jp.co.pwv.spring-mvc-archetype \
	-DarchetypeVersion=1.1.1

cd cart

mvn eclipse:eclipse -DdownloadSources=true

データベースは、HsqlDBのサーバを使用するため、db.propertiesの内容を修正します。

db.url=jdbc:hsqldb:hsql://localhost

最後にeclipseでcartプロジェクトをimportし、CVSに登録します。

session scopeについて

長くなったので別タイトルにしました。

Product(製品の)の管理

最初にProductを管理するページを作成します。

さしあたり、管理機能として

Productドメインモデルの作成

最初にProductのドメインモデルを作成します。 ドメインモデルは、example.cart.domainパッケージ内に定義します。

eclipseで以下のように入力した後、getter/setterを自動生成してください。

package example.cart.domain;

public class Product {
	private Integer	id;
	private String	title;
	private String	description;
	private String	image_url;
}

GenMVCプラグインの起動

GenMVCプラグインのscaffoldゴールを指定して、ProductのDao、 Controller、 View、データベーステーブル を自動生成します。

その前に、GenMVCプラグインは、Productのクラスファイルを見に行くので、mavenのpackageを実行します。

mvn package

mvn GenMVC:scaffold

このコマンドで、

[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - example.cart:cart:war:1.0-SNAPSHOT
[INFO]    task-segment: [GenMVC:scaffold]
[INFO] ------------------------------------------------------------------------
[INFO] [GenMVC:scaffold]
[INFO] pkgName:example.cart
[INFO] runtime.classpath:/Users/take/Documents/workspace/cart/target/classes
[INFO] cls: example.cart.domain.Member
[INFO] template fullpath:velocity/IDao.vm
[INFO] template fullpath:velocity/Dao.vm
[INFO] template fullpath:velocity/edit_stub.vm
[INFO] template fullpath:velocity/list_stub.vm
[INFO] template fullpath:velocity/hbm.vm
[INFO] cls: example.cart.domain.Product
[INFO] template fullpath:velocity/IDao.vm
[INFO] template fullpath:velocity/Dao.vm
[INFO] template fullpath:velocity/Manager.vm
[INFO] template fullpath:velocity/EditController.vm
[INFO] template fullpath:velocity/OpsController.vm
[INFO] template fullpath:velocity/edit.vm
[INFO] template fullpath:velocity/edit_stub.vm
[INFO] template fullpath:velocity/list.vm
[INFO] template fullpath:velocity/list_stub.vm
[INFO] template fullpath:velocity/hbm.vm
[INFO] template fullpath:velocity/servlet-stub.vm
[INFO] template fullpath:velocity/sql.vm
[INFO] template fullpath:velocity/applicationContext.vm
[INFO] template fullpath:velocity/form-messages.vm
[INFO] template fullpath:velocity/validation.vm

と出力され、必要なファイルがすべて生成されます。 再度、mvn packageを実行してtarget/cart.warをtomcatのwebappsにコピーします。

これだけで、Productのリスト表示、編集の画面が生成されます。

product_list.jpg

属性の追加

scaffoldの後にProductに属性を追加したくなることはよくあります。

Product の属性を変更したときの手順は以下の通りです。

通常は、これで十分ですが、以下のファイルを修正した場合にはバックアップを取ってください。

今回は、自動生成されたファイルを全く変更していないので、テーブルの削除だけを行います。

テーブルの削除

開発の途中ではデータベースのテーブルを変更したり、値を参照します。このような用途に便利なのが Ecl,ipseのプラグインDbEditです。 DbEditのインストール方法はhttp://www.pwv.co.jp/take_public_html/DevTool/DevTool_c9.html#doc1_589 を参照してください。

DbEditのTableタグを開くと以下のようにT_MEMBERとT_PRODUCTの2つのテーブルが作られています。

DbEdit.jpg

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc