SpringMVCシリーズの注釈版——03


SpringMVCシリーズの注釈版——03


要旨:注釈版のspringMVCを用いてページにアクセスし、GETをテストし、POSTタイプの方法との使用方法を実現する.

一:実現順序


1、前の項目の内容を保持するために、ここにspringMVCのプロファイルを新規作成する:springAnnotation-servlet.xml、もちろん、webを変えます.xmlの構成のロードファイルのパス.
2、springAnnotation-servlet.xmlでは構成を用いてannotationの使用を開始し、
3、スキャンするパケット、すなわち、どのパケットの下にあるクラスがannotationを使用して実現されるかを構成する.
4、指定されたannotationスキャンされたパッケージの下に具体的なControllerを作成し、annotationの使用に注意し、一時的にクラス注釈、方法の注釈、具体的な意味コードに説明がある.

二:具体的な手順及び詳細


1、springAnnotation-servletを実現する.xmlの構成、1つはオン、1つはスキャン、コードに注釈がある
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
 xmlns:context="http://www.springframework.org/schema/context"  
 xmlns:p="http://www.springframework.org/schema/p"  
 xmlns:mvc="http://www.springframework.org/schema/mvc"  
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 xsi:schemaLocation="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.xsd  
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
      
      
    <!--   -->
	<context:component-scan base-package="com.chy.web.controller.annotation"></context:component-scan>
	
	<!--    、  -->
	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>	
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>	
		
	
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
 </beans>  

2、具体的なUserController:具体的なコードにも説明があります.
package com.chy.web.controller.annotation;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

// 、 、 springMVC 
@Controller
public class UserController {
	
	// 、 :value 、method 、 
	@RequestMapping(value="/user/toUser",method=RequestMethod.GET)
	public ModelAndView toUser(){
		return new ModelAndView("/annotation");
	}

	@RequestMapping(value="/user/addUser",method=RequestMethod.POST)
	public ModelAndView addUser(){
		String result="this is addUser-------";
		return new ModelAndView("/annotation","result",result);
	}
	
	@RequestMapping(value="/user/delUser",method=RequestMethod.GET)
	public ModelAndView delUser(){
		String result="this is delUser-------";
		return new ModelAndView("/annotation","result",result);
	}	
}

3、GET、POST方法のテスト
a)アドレスバーに入力http://localhost:8080/springMVC4/user/toUserannotationに入ります.jspページ(urlリクエストがget方式であると同時にUserControllerで対応する)/user/toUser」メソッドもget方式でリクエストされ、この時点で正常にアクセスできる)、annotationに渡すパラメータがないためである.jsp、だからannotation.jspにはページdivのreusltの表示結果はありません.
b)annotationをクリックする.jspのformコミットボタン、postでコミット、action="/springMVC/user/addUser"でUserControllerのaddUserメソッドを要求するが、両者が一致しないとアクセスに失敗し、UserControllerのaddUserメソッドのリクエスト方式をpostに変更するとアクセスは正常、
c)自分で试して、もうマップしないで、もともと水、図が多くて更に水...

補足:


1.UserControllerでメソッド定義のリクエストパスは/user/addUserであり、formのactionでのリクエストは/springMVC/user/addUserである.
2、プロジェクトの全体構造図:
                              
        3、annotation.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'annotation.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  		<form action="/springMVC4/user/addUser" method="post">
  			this is annotaion page!
  			<br/>
  			<div>
  				${requestScope.result}
  			</div>
  			<input type="submit" value="post "/>
  			<input type="reset" value=" "/>
  		</form>
  </body>
</html>

       4、staticFile.jspはspringMVCが静的リソースをブロックしているかどうかを見て、画像がブロックされていない場合、そうでなければブロックされています.このプロジェクトには構成されていないようですが、http://blog.csdn.net/crave_shy/article/details/19166555で最後に補足したプロファイルにあります.
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
  		<h1> </h1>
  		<div>
  			<img alt="img" src="img/1.jpg">
  		</div>
  </body>
</html>

詳細:springMVCシリーズの目次-00