Spring のライブラリ追加
 pom.xml を開き、下のタブの Dependencies を選択
 Add...
 Enter groupID, ...: springframework
 org.springframework spring-webmvc - 3.2.4.RELEASE [jar] を選択
 OK
 上記の方法で検索できない場合、http://search.maven.org/ から検索して、<dependency> を pom.xml に直接貼り付けます。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>jp.matsushima</groupId>
  <artifactId>spring-test</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>spring-test Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <build>
    <finalName>spring-test</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <encoding>UTF-8</encoding>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.4.RELEASE</version> </dependency>
  </dependencies> </project>
web.xml の編集
 /WEB-INF/web.xml を編集し、servlet に org.springframework.web.servlet.DispatcherServlet を指定します。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">

  <display-name>spring-test Web Application</display-name>

  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <!-- HTTP リクエストを Controller にディスパッチするサーブレット。 -->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </init-param> -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>
dispatcher-servlet.xml の編集
 /WEB-INF/dispatcher-servlet.xml を作成し、DispatcherServlet の設定をします。
 context:component-scan には Controller のあるパッケージを指定します。
 viewResolver bean には Controller から jsp にマッピングする org.springframework.web.servlet.view.InternalResourceViewResolver を指定します。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:p="http://www.springframework.org/schema/p"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

  <!-- @Controller の付いたクラスを Controller として登録。 -->
  <mvc:annotation-driven />

  <!-- @Controller, @Repository, @Service, @Component の付いたコンポーネントを検出するパッケージの指定。 -->
  <context:component-scan base-package="jp.matsushima.spring_test.controller" />

  <!-- @Controller から view へのマッピング方法の指定。 -->
  <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp"/>
  </bean>

</beans>
Controller の作成
 dispatcher-servlet.xml で指定したパッケージ配下に Controller クラスを作成します。
 (src/main/java -> jp.matsushima.spring_test.controller#IndexController.java)
 クラスとメソッドに指定した @RequestMapping の value 指定の組み合わせで URL が決まります。
package jp.matsushima.spring_test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * インデックスページ。
 */
@Controller
@RequestMapping({"/index", "/"})
public class IndexController {

	@RequestMapping(value = "", method = RequestMethod.GET)
	public String index(Model model) {
		return "index";
	}
}
jsp の作成
 dispatcher-servlet.xml の viewResolver で指定した場所に、Controller が return したマッピング名で jsp を作成します。
(/src/main/webapp/WEB-INF/jsp/index.jsp)
<%@  page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>index</title>
</head>
<body>
index page
</body>
</html>
サーバを起動し、ブラウザから http://localhost:8080/spring-test/index
または http://localhost:8080/spring-test/ にアクセスします。
index page と表示されれば OK です。


プロジェクトの最新版はこちらで公開しています。
https://github.com/matsushima-terunao/blog_java/

→ 1-4. MySQL のインストールからデータ作成まで
← 1-2. Eclipse で Maven Servlet プロジェクトの作成
↑ 一覧