Spring MVC初探_(1)

12012 ワード

むだ話はもう言わないで、直接コードをかけます。
 
Spring MVCの第一章として、まずプロジェクトを構築して、Spring MVCが一体何なのかを見てみます。
 
 
Spring MVCを深く研究するには、http://jinnianshilongnian.iteye.com/blog/1631021(大波開のSpringMVCがいいです)がオススメです。
 
 依頼のカバン
----------------------------------------------------
*1、 Springフレームjarパッケージ:
簡単にするために、spring-frame ework-3.11.RELEAS-with-docs.zip/dist/下のすべてのjarカバンをプロジェクトのWEB-INF/libディレクトリにコピーします。
*2、 Springフレーム依存jarパッケージ:
Apache commons logingログを追加する必要があります。ここで使っているのはcommons.loging-11.jarです。
jstlタグライブラリのサポートを追加する必要があります。ここで使うのはjstl-1.1.22.jarとstandar-1.1.jarです。
 
 
----------------------------------------------------
 
1、web.xml webプロジェクトの実行時のロードファイル
 
 
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
	<display-name>test-webapp</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
  	
	<filter>   
		<filter-name>CharacterEncodingFilter</filter-name>   
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>   
		<init-param>   
			<param-name>encoding</param-name>   
			<param-value>utf-8</param-value>   
		</init-param>   
	</filter>   
	<filter-mapping>   
		<filter-name>CharacterEncodingFilter</filter-name>   
		<url-pattern>/*</url-pattern>   
	</filter-mapping>  

	
	<servlet>   
		<!-- SpringMVC        web         ,          {*}       -->
		<servlet-name>springServlet</servlet-name>  
		<!-- SpringMVC       ,DispatcherServlet --> 
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   
		<load-on-startup>1</load-on-startup> 
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<!-- Spring MVC         Spring MVC      -->
			<!--            ,     {*}-servlet.xml    -->
			<param-value>/WEB-INF/spring-mvc-config.xml</param-value>
		</init-param>  
	</servlet>   
	<servlet-mapping>   
		<servlet-name>springServlet</servlet-name>   
		<url-pattern>/</url-pattern>   
	</servlet-mapping>  
	
</web-app>
 
 
 
2、スプリング-mvc-config.xml/{*}-servlet.xml SprigMVC運転時にロードされたプロファイル
 
以下の構成ファイルは注釈方式で、注釈内容は非注釈方式です。
 
 
<?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:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<!--
			the application context definition for the springappDispatcherServlet
		-->
	<!--            -->  
	<context:annotation-config />
	
	<!--                ,     base-package="*,*"         -->  
	<context:component-scan base-package="com.test.controller" />

	<!--  Spring MVC     ,       POJO    -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

	
	<!--    Spring MVC            -->
	<!-- HandlerMapping  
	<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 	-->
	<!-- HandlerAdapter
	<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
	 -->
	 
	 
	<!--       -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
		<property name="prefix" value="/jsp/"/><!--         /jsp/     -->
		<property name="suffix" value=".jsp"/>
	</bean>
	
	<!--      (      )
	<bean name="/hello" class="com.test.controller.HelloWorldController"/>
	-->
</beans>
 
 
3、このウェブプロジェクトをtomcatの下に展開し、このプロジェクトを実行する。もし木に問題があれば、以下の内容を継続する。
 
4、最初のハローワールド(XML配置方式)を書きます。
 
(1)まずSprigMVCのコントローラを実現する
ハロルドController.java
 
package com.test.controller;

import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

//     Controller  (Spring     Controller  )
public class HelloWorldController implements Controller {

	@Override
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
       //1、    、    
       //2、         
       //3、                 
       //4、       
       ModelAndView mv = new ModelAndView();
       //             POJO  
       
       HashMap<String, String> hm = new HashMap<String, String>();
       hm.put("k1", "v1");
       hm.put("k2", "v2");
       mv.addObject("message", "Hello World!");
       mv.addObject("message2", "Hello World2!");
       mv.addObject("map",hm);
       //       ,                     
       mv.setViewName("hello");
       return mv;
    }


}
 
 
(2)展示ページ
ハロー.jsp
 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">   
<html>   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
<title>Hello World</title>   
</head>   
<body>   
${message}   
<br/>
${message2}  
<br/>
${map} 
<br/>
${rants}
</body>   
</html>  
 
 
(3)配置書類を記入する spring-mvc-config.xml
 
spring-mvc-config.xmlファイルのコメント部分をリリースします。hello Worldをよく知るために、spring-mvc-config.xmlを書き直します。spring-mvc-config.xmlはSpring MVCの配置部分の実現に対してだけ注意してください。欠点を注釈するのは目標コードの埋め込み型に対して強すぎて、二次開発と修正に不利です。
 
 
<?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:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">


	<!--    Spring MVC            -->
	<!-- HandlerMapping --> 
	<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 	
	<!-- HandlerAdapter -->
	<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
	
	 
	 
	<!--       -->
	<bean 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>
	
	<!--     ,  helloWorldController   ,     /hello (      )-->
	<bean name="/hello" class="com.test.controller.HelloWorldController"/>
	
</beans>
 
(4)、アクセス運転
このときTomcatを再開し、ブラウザURL入力http://localhost:8080/test-webapp/helloを開く。
内容を正しく表示するには
書き記す
ハローワールド
ハローワールド2
{k 1=v 1,k 2=v 2}
 
 
5、注釈方式のデモを書く
(1)コントローラ
HomePageController.java
 
 
package com.test.controller;

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

@Controller 
@RequestMapping("/hello")
public class HomePageController {
	
	@RequestMapping(params = "method=sayHello")
    public String sayHello(Model model) { 
        model.addAttribute("rants","hello,world");
        return "hello"; 
    } 

	@RequestMapping(params = "method=sayHelloHomePage")
    public String sayHelloHomePage(Model model) { 
        model.addAttribute("rants","spring MVC");
        return "hello"; 
    }     

}
 
 
(2)展示ページ
上4-(2)のハロー.jspです。
 
(3)配置書類を記入する spring-mvc-config.xml
 
上2の spring-mvc-config.xml
 
(4)アクセス運転
Tomcatを再起動し、ブラウザのURL入力を開くhttp://localhost:8080/test-webapp/hello?method=sayHello
内容を正しく表示するには
 
 書き記す
ハロー、ワールド
 
Tomcatを再起動し、ブラウザのURL入力を開くhttp://localhost:8080/test-webapp/hello?method=sayHello HomePage
 
内容を正しく表示するには
 
 書き記す
spring MVC
 
----------------------------------------------------------
 
転送とリダイレクト
redirect/forward:url方式で別のアクションに回して連続的に処理することができます。
redirect:url防止フォームによる重複提出が可能です。 。
書き方は以下の通りです
return「forward:/order/add」
return“redirect:/index.jsp”;