SpringMVCシリーズの注釈版——03
6910 ワード
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
<?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>
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);
}
}
<%@ 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>
<%@ 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>