#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 に依存していると記述されています。 新規プロジェクトの作成と同様に[[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(おもしろかった[3],そうでもない[0],わかりずらい[1]) #vote(おもしろかった[4],そうでもない[0],わかりずらい[1]) 皆様のご意見、ご希望をお待ちしております。 #comment_kcaptcha