Spring MVC MultiActionController Beispiel

Spring MVC MultiActionController Beispiel

In der Spring MVC-Anwendung wirdMultiActionController verwendet, um verwandte Aktionen in einem einzigen Controller zu gruppieren. Der Methodenhandler muss die folgende Signatur befolgen:

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

1. MultiActionController

Siehe ein MultiActionController-Beispiel.

package com.example.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");

    }

}

MitControllerClassNameHandlerMapping konfiguriert.



 

  

2. Mapping-Beispiele

Jetzt wird die angeforderte URL dem Methodennamen in den folgenden Mustern zugeordnet:

  1. CustomerController ->/customer/ *

  2. /customer/add.htm –> add()

  3. /customer/delete.htm –> delete()

  4. /customer/update.htm –> update()

  5. /customer/list.htm –> list()

3. InternalPathMethodNameResolver

Der InternalPathMethodNameResolver ist die Standardimplementierung vonMultiActionController, um die URL dem Methodennamen zuzuordnen. Sie können dem Methodennamen jedoch weiterhin Präfix oder Suffix hinzufügen:


 

  
     
    
       
       
    
     
   

Jetzt wird die URL dem Methodennamen in folgendem Muster zugeordnet:

  1. CustomerController ->/customer/ *

  2. /customer/add.htm –> testaddCustomer()

  3. /customer/delete.htm –> testdeleteCustomer()

  4. /customer/update.htm –> testupdateCustomer()

  5. /customer/list.htm –> testlistCustomer()

Hinweis
Mit Anmerkungen ist der MultiActionController einfacher zu konfigurieren. Weitere Informationen finden Sie inMultiActionController annotation example.

Quellcode herunterladen

Laden Sie es herunter -SpringMVC-MultiActionController-Example.zip (7 KB)