Exemple de Spring MVC MultiActionController
Dans l'application Spring MVC,MultiActionController est utilisé pour regrouper les actions associées dans un seul contrôleur, le gestionnaire de méthode doit suivre la signature ci-dessous:
public (ModelAndView | Map | String | void) actionName( HttpServletRequest, HttpServletResponse [,HttpSession] [,CommandObject]);
1. MultiActionController
Voir un exemple MultiActionController.
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"); } }
AvecControllerClassNameHandlerMapping configuré.
2. Exemples de mappage
Maintenant, l'URL reuqested sera mappée au nom de la méthode dans les modèles suivants:
-
CustomerContrôleur ->/customer/ *
-
/customer/add.htm –> add()
-
/customer/delete.htm –> delete()
-
/customer/update.htm –> update()
-
/customer/list.htm –> list()
3. InternalPathMethodNameResolver
InternalPathMethodNameResolver est l'implémentation par défaut deMultiActionController pour mapper l'URL au nom de la méthode. Mais, vous êtes toujours autorisé à ajouter un préfixe ou un suffixe au nom de la méthode:
Maintenant, l'URL correspondra au nom de la méthode selon le modèle suivant:
-
CustomerContrôleur ->/customer/ *
-
/customer/add.htm –> testaddCustomer()
-
/customer/delete.htm –> testdeleteCustomer()
-
/customer/update.htm –> testupdateCustomer()
-
/customer/list.htm –> testlistCustomer()
Remarque
Avec l'annotation, le MultiActionController est plus facile à configurer, visitez ceMultiActionController annotation example pour plus de détails.
Télécharger le code source
Téléchargez-le -SpringMVC-MultiActionController-Example.zip (7 Ko)