- 追加された行はこの色です。
- 削除された行はこの色です。
#freeze
[[Spring-MVC/ステップ・バイ・ステップ]]
2008/03/14からのアクセス回数 &counter;
#contents
** サンプルソースのダウンロード [#zbefe4c4]
ここでは、Spring 2.5のサンプルプログラムを使ってjavaのプログラムの設定方法を説明します。
サンプルソースは、http://www.springframework.org/download の最新版から
spring-framework-2.5.x-with-dependencies.zipのファイルをダウンローしてください。
ZIPファイルを展開して、samples/showcases/mvc-conventionを取り出します。
** ファイルのコピーと配置 [#ecceef65]
それでは、javaファイル、jspファイル、設定ファイルをコピーします。
- src以下のディレクトリをmvc-convention/src/main/java/以下にコピーします
- war以下の
index.jsp,
cssディレクトリ
をmvc-convention/src/main/webappにコピーします
- war/WEB-INF以下の
applicationContext.xml,
coverc-servlet.xml,
web.xml,
jspディレクトリ,
tldディレクトリ
をmvc-convention/src/main/webapp/WEB-INFにコピーします
** コンパイルエラーがでてしまう [#b93e1f09]
ソースをコピーしてEclipseでmvc-conventionプロジェクトを見ると、org.springframework.showcase.coverc.webにコンパイルエラーが出ています。
サンプルソースに付属のbuild.xmlをみるとspring.jarの他に
- servlet-api.jar
- jstl.jar
- commons-logging.jar
- standard.jar
- spring-webmvc.jar
に依存していると記述されています。
新規プロジェクトの作成と同様にMVNReposigoryで上記のライブラリを検索すると以下のようになります。
新規プロジェクトの作成と同様に[[MVNRepository>http://mvnrepository.com/]]で上記のライブラリを検索すると以下のようになります。
#pre{{
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
}}
これをpom.xmlに挿入します。
** 再度コンパイル [#x2db5e9e]
必要なライブラリをpom.xmlに追加したので、再度コンパイルします。
#pre{{
$ mvn clean compile
}}
今度は、エラーがでなくなりました。
** Eclipseのプロジェクトファイルを作り直し [#bf163480]
しかしEclipseのプロジェクト画面では、まだエラーが出たままです。
これは、pom.xmlの変更がEclipseのプロジェクトファイル. classpathに反映されていないためです。
以下のコマンドを実行して.project, .classpathファイルを更新します。
#pre{{
$ rm .project .classpath
$ mvn eclipse:eclipse -DdownloadSources=true
}}
** ブラウザーで表示 [#rd04bd27]
mavenのjettyプラグインを起動した後、
$ mvn jetty:run
ブラウザーで
http://localhost:8080/mvc-convention/
と入力してください。
以下の画面が出力されます。
#ref(list.jpg);
editリンクをクリックすると以下のような編集画面に移動します。
#ref(edit.jpg);
** どうして直接jarファイルをWEB-INF以下のlibに入れないのか [#g8a4ccae]
どうして直接jarファイルをWEB-INF以下のlibに入れないで、
jarファイルの依存関係をpom.xmlファイルに定義するのでしょうか。
その答えは、pom.xmlで依存関係を指定すると
- 重複するjarファイルを1カ所で管理することができる
- 依存する他のjarファイルを自動的にダウンロードしてくれる
- 他のプロジェクトと重複するjarファイルを1カ所で管理できる
- jarファイルのソースファイルも自動的にダウンロードされる
- warファイル作成時に自動的に必要なjarファイルが組み込まれる
からです。
ダウンロードされた.jarファイルは、ホームディレクトリの.m2/repositoryディレクトリに配置されます。
その結果、プロジェクトのサイズが小さくなるので、バージョン管理の負担を軽減できます。
** プロジェクトファイル [#v3aa03fa]
作成したプロジェクトファイルを
#ref(mvc-convention.zip);
にまとめました。
ダウンロードして展開した後に、
#pre{{
$ rm .project .classpath
$ mvn eclipse:eclipse -DdownloadSources=true
}}
を実行してください。
** コメント [#vbabcdde]
この記事は、
#vote(おもしろかった,そうでもない,わかりずらい)
#vote(おもしろかった[4],そうでもない[0],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。
#comment
#comment_kcaptcha