zoukankan      html  css  js  c++  java
  • springMVC3学习(五)--MultiActionController

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

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

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

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

    MultiActionController类实现

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

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

    核心属性:

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

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


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

    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 UserController extends MultiActionController {
    	
    	public ModelAndView add(HttpServletRequest request,HttpServletResponse response) {
    		ModelAndView mv = new ModelAndView(); 
    		mv.addObject("message","add"); 
    		mv.setViewName("add"); 
    		return mv; 
    	}
    	public ModelAndView delete(HttpServletRequest request,HttpServletResponse response) {
    		ModelAndView mv = new ModelAndView(); 
    		mv.addObject("message","delete"); 
    		mv.setViewName("delete"); 
    		return mv; 
    	}
    }

    springMVC.xml配置

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
          <property name="mappings">
                <props>
                      <prop key="userAction.do">userAction</prop>
    	    </props>
          </property>
    </bean>
    <bean id="userAction" class="com.itmyhome.UserController">
          <property name="methodNameResolver">
    	    <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    		   <!-- 指定參数名为action -->
    		   <property name="paramName" value="action" />
    	    </bean>
          </property>
    </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


    欢迎增加JAVA技术交流群:74955800


  • 相关阅读:
    用fmt标签对EL表达式取整
    【题解】GXOI/GZOI2019 机房游记
    【题解】【原创题目】せやな~
    【题解】折纸 origami [SCOI2007] [P4468] [Bzoj1074]
    【题解】切割多边形 [SCOI2003] [P4529] [Bzoj1091]
    【题解】【原创题目】伊卡洛斯和西瓜
    【题解】三角形 [P1222] / 三角形覆盖问题 [HNOI2012] [P3219]
    【题解】CIRU
    【题解】Railway [Uva10263]
    【学习笔记】计算几何全家桶
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4029080.html
Copyright © 2011-2022 走看看