Spring MVC ParameterMethodNameResolver exemple

Exemple de Spring MVC ParameterMethodNameResolver

ParameterMethodNameResolver, un résolveur de nom de méthode MultiActionController enmap URL to method name via request parameter name, et le nom de paramètre est personnalisable via la propriété «paramName». Voir l'exemple suivant:

1. MultiActionController

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");

    }

}

2. ParameterMethodNameResolver

AvecParameterMethodNameResolver configuré et définissez le nom du paramètre par la propriété «paramName»:



 

  
     
    
       
    
     
   

Maintenant, l'URL sera mappée sur le nom de la méthode via le nom du paramètre de requête «action»:

  1. /customer/*.htm?action=add –> add() method

  2. /customer/whatever.htm?action=add –> add() method

  3. /customer/*.htm?action=update –> update() method

  4. /customer/*.htm?action=delete –> delete() method

  5. /customer/*.htm?action=list –> list() method

P.S the “*” means any text.

Note
Par défaut,MultiActionController est utilisé leInternalPathMethodNameResolver pour mapper l'URL au nom de la méthode correspondante.

Télécharger le code source