Spring-MVC/ステップ・バイ・ステップ

2008/03/14からのアクセス回数 8278

サンプルソースのダウンロード

ここでは、Spring 2.5のサンプルプログラムを使ってjavaのプログラムの設定方法を説明します。

サンプルソースは、http://www.springframework.org/download の最新版から spring-framework-2.5.x-with-dependencies.zipのファイルをダウンローしてください。 ZIPファイルを展開して、samples/showcases/mvc-conventionを取り出します。

ファイルのコピーと配置

それでは、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にコピーします

コンパイルエラーがでてしまう

ソースをコピーして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で上記のライブラリを検索すると以下のようになります。

    <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に挿入します。

再度コンパイル

必要なライブラリをpom.xmlに追加したので、再度コンパイルします。

$ mvn clean compile

今度は、エラーがでなくなりました。

Eclipseのプロジェクトファイルを作り直し

しかしEclipseのプロジェクト画面では、まだエラーが出たままです。

これは、pom.xmlの変更がEclipseのプロジェクトファイル. classpathに反映されていないためです。

以下のコマンドを実行して.project, .classpathファイルを更新します。

$ rm .project .classpath
$ mvn eclipse:eclipse -DdownloadSources=true

ブラウザーで表示

mavenのjettyプラグインを起動した後、

$ mvn jetty:run

ブラウザーで

http://localhost:8080/mvc-convention/

と入力してください。

以下の画面が出力されます。

list.jpg

editリンクをクリックすると以下のような編集画面に移動します。

edit.jpg

どうして直接jarファイルをWEB-INF以下のlibに入れないのか

どうして直接jarファイルをWEB-INF以下のlibに入れないで、 jarファイルの依存関係をpom.xmlファイルに定義するのでしょうか。

その答えは、pom.xmlで依存関係を指定すると

  • 依存する他のjarファイルを自動的にダウンロードしてくれる
  • 他のプロジェクトと重複するjarファイルを1カ所で管理できる
  • jarファイルのソースファイルも自動的にダウンロードされる
  • warファイル作成時に自動的に必要なjarファイルが組み込まれる

からです。 ダウンロードされた.jarファイルは、ホームディレクトリの.m2/repositoryディレクトリに配置されます。

その結果、プロジェクトのサイズが小さくなるので、バージョン管理の負担を軽減できます。

プロジェクトファイル

作成したプロジェクトファイルを

にまとめました。

ダウンロードして展開した後に、

$ rm .project .classpath
$ mvn eclipse:eclipse -DdownloadSources=true

を実行してください。

コメント

この記事は、

選択肢 投票
おもしろかった 2  
そうでもない 0  
わかりずらい 1  

皆様のご意見、ご希望をお待ちしております。


(Input image string)


添付ファイル: fileedit.jpg 497件 [詳細] filelist.jpg 503件 [詳細] filemvc-convention.zip 536件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-11-22 (月) 18:06:21 (2407d)
SmartDoc