Spring 3.0 の Spring MVC を Eclipse で試してみる。
■ 前提
- ローカルの Maven リポジトリに Spring 3.0 のjar が登録済み[参考]。
- Eclipse に WTP と m2eclipse がインストール済み。
- Tomcat v6.0 がServer および Server Runtime として構成済み。
■ 構築
- Java プロジェクト "hello-spring"を作って、これを Maven Project にして、さらに Dynamic Web Project にもする
- POM に以下を追加する
groupId org.springframework artifactId spring-webmvc version 3.0.0.RELEASE groupId javax.servlet artifactId jstl version 1.2 - src/main/webapp/jsp/下に hello.jsp を作成する
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html><body><p>${msg}</p></body></html>
- WEB-INF 下の web.xml を編集
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
- src/main/webapp/WEB-INF/下 に springmvc-servlet.xmlを作成
context:component-scan の記述により、@Contoller の付いたクラスがコントローラとして扱われるようになる。
<?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="studies.spring30mvc" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
- 以下のようなコントローラクラスを作成
package studies.spring30mvc; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/hello") public class HelloWorldController { @RequestMapping("/{who}") public String handle(@PathVariable String who, Model model) { model.addAttribute("msg", String.format("Hello, %s!", who)); return "hello"; } }
■ 実行
- Servers ビューからTomcat を起動
- hello-spring プロジェクトを [Add]
- ブラウザで http://localhost:8080/hello-spring/hello/spring30 を見るとHello, spring30!と表示される
- URL の hello の後ろを変えたらメッセージも変わる
0 件のコメント:
コメントを投稿