springMVC3学习--MultiActionController

来源:互联网 发布:谷歌软件商店 编辑:程序博客网 时间:2024/04/29 16:27

Spring提供一个多动作控制器,使用它你可以将几个动作合并在一个控制器里,这样可以把功能组合在一起。

多动作控制器存在在一个单独的包中——org.springframework.web.mvc.multiaction——它能够将请求映射到方法名,

然后调用正确的方法。比如当你在一个控制器中有很多公共的功能,但是想多个入口到控制器使用不同的行为,

使用多动作控制器就特别方便。

MultiActionController类实现

类定义:public class MultiActionController extends  AbstractController implements LastModified, 

继承了AbstractController,并实现了LastModified接口,默认返回-1;

核心属性:

delegate: 功能处理的委托对象,即我们要调用请求处理方法所在的对象,默认是this;

methodNameResolver:功能处理方法名解析器,即根据请求信息来解析需要执行的delegate的功能处理方法的方法名。


接下来看一个使用ParameterMethodNameResolver的例子

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. import javax.servlet.http.HttpServletRequest;  
  2. import javax.servlet.http.HttpServletResponse;  
  3. import org.springframework.web.servlet.ModelAndView;  
  4. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;  
  5.   
  6. public class UserController extends MultiActionController {  
  7.       
  8.     public ModelAndView add(HttpServletRequest request,HttpServletResponse response) {  
  9.         ModelAndView mv = new ModelAndView();   
  10.         mv.addObject("message","add");   
  11.         mv.setViewName("add");   
  12.         return mv;   
  13.     }  
  14.     public ModelAndView delete(HttpServletRequest request,HttpServletResponse response) {  
  15.         ModelAndView mv = new ModelAndView();   
  16.         mv.addObject("message","delete");   
  17.         mv.setViewName("delete");   
  18.         return mv;   
  19.     }  
  20. }  

springMVC.xml配置

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  2.       <property name="mappings">  
  3.             <props>  
  4.                   <prop key="userAction.do">userAction</prop>  
  5.         </props>  
  6.       </property>  
  7. </bean>  
  8. <bean id="userAction" class="com.itmyhome.UserController">  
  9.       <property name="methodNameResolver">  
  10.         <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">  
  11.            <!-- 指定参数名为action -->  
  12.            <property name="paramName" value="action" />  
  13.         </bean>  
  14.       </property>  
  15. </bean>  

测试URL:

http://localhost:8080/spring_MultiActionController/userAction.do?action=add

http://localhost:8080/spring_MultiActionController/userAction.do?action=delete


源码下载:http://download.csdn.net/detail/itmyhome/7363665


0 0
原创粉丝点击