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は、次のパターンのメソッド名にマップされます。
-
顧客
コントローラ – >
/顧客/
** -
/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]