Spring MVC MultiActionControllerの例

Spring MVCアプリケーションでは、 MultiActionController は関連するアクションを1つのコントローラにグループ化するために使用され、メソッドハンドラは以下のシグニチャに従わなければなりません:

    public (ModelAndView | Map | String | void) actionName(
        HttpServletRequest, HttpServletResponse[,HttpSession][,CommandObject]);

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

    }

}
<beans ...>

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

  <bean class="com.mkyong.common.controller.CustomerController"/>

</beans>

2.マッピングの例

ここでreuqested URLは、次のパターンのメソッド名にマップされます。

  1. 顧客 コントローラ - > /顧客/ **

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

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

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

  5. /customer/ list .htm - > list()

3. InternalPathMethodNameResolver

InternalPathMethodNameResolverは、URLをメソッド名にマップするデフォルトの MultiActionController 実装です。ただし、メソッド名に接頭辞または接尾辞を追加することはできます。

<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.InternalPathMethodNameResolver">
       <property name="prefix" value="test"/>
       <property name="suffix" value="Customer"/>
    </bean>
     </property>
   </bean>
</beans>

URLは次のパターンでメソッド名にマップされます:

  1. 顧客 コントローラ - > /顧客/ **

  2. /customer/ add .htm - > test add Customer()

  3. /customer/ delete .htm - >テスト 削除 顧客()

  4. /customer/ update .htm - >テスト アップデート 顧客()

  5. /customer/ list .htm - > test list Customer()

注意注釈を使用すると、MultiActionControllerの設定がより簡単になります。詳細については、このリンクを参照してください。//spring-mvc/spring-mvc-multiactioncontroller-annotation-example/[MultiActionController注釈の例]

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

ダウンロードする - SpringMVC-MultiActionController-Example.zip (7KB)