zoukankan      html  css  js  c++  java
  • Spring MVC MultiActionController example

    In Spring MVC application, MultiActionController is used to group related actions into a single controller, the method handler have to follow below signature :

    	public (ModelAndView | Map | String | void) actionName(
    		HttpServletRequest, HttpServletResponse [,HttpSession] [,CommandObject]);
    

    1. MultiActionController

    See a MultiActionController example.

    package com.mkyong.common.controller;
    
    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 CustomerController extends MultiActionController{
    	
    	public ModelAndView add(HttpServletRequest request,
    		HttpServletResponse response) throws Exception {
    		
    		return new ModelAndView("CustomerPage", "msg","add() method");
    			
    	}
    	
    	public ModelAndView delete(HttpServletRequest request,
    		HttpServletResponse response) throws Exception {
    			
    		return new ModelAndView("CustomerPage", "msg","delete() method");
    				
    	}
    	
    	public ModelAndView update(HttpServletRequest request,
    		HttpServletResponse response) throws Exception {
    			
    		return new ModelAndView("CustomerPage", "msg","update() method");
    				
    	}
    	
    	public ModelAndView list(HttpServletRequest request,
    		HttpServletResponse response) throws Exception {
    				
    		return new ModelAndView("CustomerPage", "msg","list() method");
    					
    	}
    	
    }
    

    With ControllerClassNameHandlerMapping configured.

    <beans ...>
    
     <bean 
      class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
        
      <bean class="com.mkyong.common.controller.CustomerController" />
    	
    </beans>
    

    2. Mapping Examples

    Now, the reuqested URL will map to the method name in the following patterns :

        CustomerController –> /customer/*
        /customer/add.htm –> add()
        /customer/delete.htm –> delete()
        /customer/update.htm –> update()
        /customer/list.htm –> list()
    

    3. InternalPathMethodNameResolver

    The InternalPathMethodNameResolver is the default MultiActionController implementation to map URL to method name. But, you are still allow to add prefix or suffix to the method name :

    <beans ...>
     <bean 
      class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
        
      <bean class="com.mkyong.common.controller.CustomerController">
         <property name="methodNameResolver">
    	<bean class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver">
    	   <property name="prefix" value="test" />
    	   <property name="suffix" value="Customer" />
    	</bean>
         </property>
       </bean>
    </beans>
    

    Now, the URL will map to the method name in the following pattern :

        CustomerController –> /customer/*
        /customer/add.htm –> testaddCustomer()
        /customer/delete.htm –> testdeleteCustomer()
        /customer/update.htm –> testupdateCustomer()
        /customer/list.htm –> testlistCustomer()
    
  • 相关阅读:
    常用变量的获取
    批出里中常用参数的含义
    利用批处理命令复制指定文件到指定目录下
    跟后台打印程序系统服务通讯时出现错误。请打开服务管理单元,确认后台打印程序服务是否在运行。
    系统日志报错i8042prt无法加载
    删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件:字符串截取
    删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件:BAT + VBS
    Linux学习笔记
    Docker
    Python学习笔记
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4755360.html
Copyright © 2011-2022 走看看