Spring MVC ParameterMethodNameResolver Beispiel

Spring MVC ParameterMethodNameResolver-Beispiel

ParameterMethodNameResolver, ein MultiActionController-Methodennamen-Resolver fürmap URL to method name via request parameter name, und der Parametername kann über die Eigenschaft "paramName" angepasst werden. Siehe folgendes Beispiel:

1. MultiActionController

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

    }

}

2. ParameterMethodNameResolver

WennParameterMethodNameResolver konfiguriert ist und den Parameternamen definiert ist, dachte die Eigenschaft "paramName":



 

  
     
    
       
    
     
   

Jetzt wird die URL dem Methodennamen über den Anforderungsparameternamen "action" zugeordnet:

  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
Standardmäßig wirdMultiActionController alsInternalPathMethodNameResolver verwendet, um die URL dem entsprechenden Methodennamen zuzuordnen.

Quellcode herunterladen