Exemple de Spring MVC MultiActionController

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:

  1. CustomerContrôleur ->/customer/ *

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

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

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

  5. /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:

  1. CustomerContrôleur ->/customer/ *

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

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

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

  5. /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