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:
-
CustomerController ->/customer/ *
-
/customer/add.htm –> add()
-
/customer/delete.htm –> delete()
-
/customer/update.htm –> update()
-
/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:
-
CustomerController ->/customer/ *
-
/customer/add.htm –> testaddCustomer()
-
/customer/delete.htm –> testdeleteCustomer()
-
/customer/update.htm –> testupdateCustomer()
-
/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)