1. MultiActionController

MultiActionControllerの例です。

package com.mkyong.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

  • ParameterMethodNameResolver

    が設定され、 ”

    paramName ** “プロパティと考えられるパラメータ名を定義します。

<beans ...>

 <bean
  class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

  <bean class="com.mkyong.common.controller.CustomerController">
     <property name="methodNameResolver">
    <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
       <property name="paramName" value="action"/>
    </bean>
     </property>
   </bean>

</beans>

ここで、URLは、アクション名のリクエストパラメータ名を介してメソッド名にマッピングされます:

  1. /customer/

    .htm


    ?action=add

    ** – > add()メソッド

  2. /customer/whatever.htm


    ?action=add


    – > add()メソッド

  3. /customer/

    .htm


    ?action=update

    ** – > update()メソッド

  4. /customer/

    .htm


    ?action=delete

    ** – > delete()メソッド

  5. /customer/

    .htm


    ?action=list

    ** – > list()メソッド

__P.S ”


** “は任意のテキストを意味する。

  • Note

    +デフォルトでは、

    MultiActionController ** はURLを対応するメソッド名にマップするリンク//spring-mvc/spring-mvc-multiactioncontroller-example/[InternalPathMethodNameResolver]で使用されます。

ソースコードをダウンロードする

リファレンス

Javadoc]。リンク://spring-mvc/spring-mvc-multiactioncontroller-example/[Spring MVC

MultiActionControllerの例]