#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ファイルを自動的にダウンロードしてくれる
- 他のプロジェクトと重複する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


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