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は、次のパターンのメソッド名にマップされます。
-
顧客
コントローラ – >
/顧客/
** -
/customer/
add
.htm – >
add()
-
/customer/
delete
.htm – >
delete()
-
/customer/
update
.htm – >
update()
-
/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は次のパターンでメソッド名にマップされます:
-
顧客
コントローラ – >
/顧客/
** -
/customer/
add
.htm – > test
add
Customer() -
/customer/
delete
.htm – >テスト
削除
顧客() -
/customer/
update
.htm – >テスト
アップデート
顧客() -
/customer/
list
.htm – > test
list Customer()
注意注釈を使用すると、MultiActionControllerの設定がより簡単になります。詳細については、このリンクを参照してください。//spring-mvc/spring-mvc-multiactioncontroller-annotation-example/[MultiActionController注釈の例]
ソースコードをダウンロードする
ダウンロードする –
SpringMVC-MultiActionController-Example.zip
(7KB)
参考文献
Javadoc]。
http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/servlet/mvc/multiaction/InternalPathMethodNameResolver.html
[InternalPathMethodNameResolver
Javadoc]