Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > SpringMVC MultiActionController的使用-最简化教程
【标  题】:SpringMVC MultiActionController的使用-最简化教程
【关键字】:SpringMVC,MultiActionController
【来  源】:http://www.blogjava.net/wangqi/archive/2006/08/31/66845.html

SpringMVC MultiActionController的使用-最简化教程

Your Ad Here Step 1:配置web.xml
<?xml?version="1.0"?encoding="UTF-8"?>
<web-app?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"
>

????
<display-name>springapp</display-name>
????????
????
<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>/page/*</url-pattern>
????
</servlet-mapping>

</web-app>
servlet-mapping定义所有以/page/开头的url请求都会被spring 的DispatcherServlet处理转发。默认情况下DispatcherServlet会读取<servlet-name>-servlet.xml文件的配置信息初始化,该文件中urlMapping的定义决定当前请求转发给哪个controller来处理。

Step2:定义/WEB-INF/springMVC-servlet.xml
?
<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
????
<!--?方法名解析器?-->
????
<bean?id="InternalPathMethodNameResolver"
????????class
="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver"?/>
????????
????
<!--?视图解析器?-->
????
<bean?id="viewResolver"
????????class
="org.springframework.web.servlet.view.InternalResourceViewResolver">
????????
<property?name="viewClass">
????????????
<value>org.springframework.web.servlet.view.JstlView</value>
????????
</property>
????
</bean>
????
????
<bean?id="controller"?class="com.controller.IndexController">
????????
<property?name="methodNameResolver">
????????????
<ref?bean="InternalPathMethodNameResolver"?/>
????????
</property>
????
</bean>

????
<bean?id="urlMapping"
????????class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
????????
<property?name="mappings">
????????????
<props>
????????????????
<prop?key="/controller/*">controller</prop>
????????????
</props>
????????
</property>
????
</bean>
</beans>
urlMapping定义/controller/开头的url请求由名字为controller的控制器来处理,因为是多动作处理器,所以要定义MethodNameResolver来告诉springMVC应该调用controller的哪个方法,这里用的是InternalPathMethodNameResolver,该方法名解释器会把整个URL中最后一个"/"和最后一个"."之间的部分作为要调用的方法名

Step3:定义controller类并继承MultiActionController?
package?com.controller;

import?java.io.IOException;
import?java.util.HashMap;
import?java.util.Map;

import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;

import?org.springframework.web.servlet.ModelAndView;
import?org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public?class?IndexController?extends?MultiActionController?{
????
????
public?ModelAndView?method1(HttpServletRequest?request,
????????????HttpServletResponse?respnose)?
throws?ServletException,?IOException?{
????????Map?model?
=?new?HashMap();
????????model.put(
"message",?"你调用的是方法1");
????????
return?new?ModelAndView("/index.jsp",?"model",?model);
????}

????
????
public?ModelAndView?method2(HttpServletRequest?request,
????????????HttpServletResponse?respnose)?
throws?ServletException,?IOException?{
????????Map?model?
=?new?HashMap();
????????model.put(
"message",?"你调用的是方法2");
????????
return?new?ModelAndView("/index.jsp",?"model",?model);
????}

}


通过配置文件,访问上面这个controller中某个方法的url即为:localhost:8080/page/controller/方法名


Step4:/index.jsp
<%@?page?language="java"?pageEncoding="UTF-8"%>
<%@?taglib?prefix="c"?uri="http://java.sun.com/jstl/core_rt"?%>
<%@?taglib?prefix="fmt"?uri="http://java.sun.com/jstl/fmt"%>?


<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">

<html>
<head></head>??
<body>

????
<c:out?value="${model.message}"/>
</body>
</html>
因为InternalPathMethodNameResolver方法名解释器会把整个URL中最后一个"/"和最后一个"."之间的部分作为要调用的方法名,所以你可以在这个URL后面加任意文件格式的后缀,比如:
localhost:8080/page/controller/method1.jsp

localhost:8080/page/controller/method2.html
很爽吧,和真实的URL地址一样。


另:开发环境:MyEclipse5.0M2+tomcat5.5
  需要用到spring.jar和jstl.jar两个包。
Eclipse Lomboz J2EE开发:【上一篇】
今天把开源的webblogger: roller配起来了:【下一篇】
【相关文章】
  • 使用jodd form简化SpringMVC中Controller的配置
  • 【随机文章】
  • 备份rootvg竟然要了2盒磁带
  • 多线程式同步之互斥技术的应用
  • jsp用jdbc连接db2数据库的方法
  • oracle10g for linux 安装
  • C++程序设计之四书五经
  • M3E Services
  • 速动画教程第二十八集 Struts+Velocity简单集成
  • 文化味的装饰品
  • 维佳先锋(VEGA PRO) -入门级机顶盒式会议电视终端
  • 在C++Builder中使用Delphi控件
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.