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()
    
  • 相关阅读:
    Bluedroid与BluZ,蓝牙测试方法的变动(基于bludroid和BlueZ的对比)
    dumpsys 用法
    ffmpeg开发指南
    Python七大原则,24种设计模式
    总结工厂模式---简单工厂、工厂方法、抽象工厂
    抽象工厂(Abstract Factory)
    工厂模式(Factory Method)
    逻辑回归(Logistic Regression) ----转载
    随机森林(Random Forest)--- 转载
    时间序列分析
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4755360.html
Copyright © 2011-2022 走看看