Spring提供了MethodNameResolver的三種方式:
1 : ParameterMethodNameResolver,這個(gè)可以根據(jù)請(qǐng)求的參數(shù)來(lái)確定一個(gè)需要調(diào)用的方法。
例如,
http://www.sf.net/index.view?testParam=testIt,這個(gè)請(qǐng)求會(huì)調(diào)用名稱為testIt的處理方法。
2 : InternalPathMethodNameResolver,這個(gè)可以根據(jù)請(qǐng)求的路徑名稱來(lái)調(diào)用相應(yīng)的方法。
例如,
http://www.sf.net/testing.view,這個(gè)請(qǐng)求會(huì)調(diào)用testing方法。
3 : PropertiesMethodNameResolver,這個(gè)可以根據(jù)一個(gè)URLs 映射列表來(lái)調(diào)用相應(yīng)的方法。
例如,如果定義了/index/welcome.html=doIt,那么當(dāng)請(qǐng)求為/index/welcome.html時(shí),會(huì)調(diào)用doIt方法。在定義URLs時(shí)可以使用通配符。/**/welcom?.html
ParameterMethodNameResolver
InternalPathMethodNameResolver
PropertiesMethodNameResolver
配置web.xml
Java代碼
1. <servlet>
2. <servlet-name>spring</servlet-name>
3. <servlet-class>
4. org.springframework.web.servlet.DispatcherServlet
5. </servlet-class>
6. <load-on-startup>2</load-on-startup>
7. </servlet>
8. <servlet-mapping>
9. <servlet-name>spring</servlet-name>
10. <url-pattern>/spring/*</url-pattern>
11. </servlet-mapping>
定義一個(gè)Controller繼承與MultiActionController
Java代碼
1. package cn.iwoo.server.controller;
2.
3. import javax.servlet.http.HttpServletRequest;
4. import javax.servlet.http.HttpServletResponse;
5.
6. import org.springframework.web.servlet.ModelAndView;
7. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
8.
9. public class BController extends MultiActionController {
10. public ModelAndView doSearch(HttpServletRequest request, HttpServletResponse response) throws Exception {
11. System.out.println(this.getClass() + "." + "doSearch()");
12. return new ModelAndView("");
13. }
14. }
方法的定義必須符合下面的格式
Java代碼
1. public (ModelAndView | Map | String | void) actionName(HttpServletRequest request, HttpServletResponse response);
定義ViewResolver
Java代碼
1. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
熱點(diǎn)推薦
中國(guó)民間魔術(shù)、原來(lái)如此
百?gòu)埲S立體圖
社交禮儀講座
75
為什么要使用三家禽肉不能吃的中國(guó)各省人口排發(fā)人警醒:一個(gè)一個(gè)人的世界
新概念英語(yǔ)學(xué)習(xí)英語(yǔ)名人名言
經(jīng)典感悟的十個(gè)現(xiàn)實(shí)生活中的你[原創(chuàng)
壯哉,
落伍沒(méi)?盤(pán)點(diǎn)
寧?kù)o(音畫(huà))
給想干事的人以衛(wèi)星電視初學(xué)者相關(guān)文章:
Spring架構(gòu)設(shè)計(jì)-增強(qiáng)MultiActionController
MultiActionController綁定command
Spring的MultiActionController使用
推薦圈子: GT-Grid
更多相關(guān)推薦
Google
Java
Spring Wire
MVC
Compression Spring
關(guān)閉
MultiActionController與3種MethodNameResolver的配置http://www.360doc.com/content/10/0329/17/968587_20...
第1頁(yè) 共3頁(yè)2011-07-29 15:59
<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</2. value></property>
3. <property name="prefix"><value>/WEB-INF/jsp/</value></property>
4. <property name="suffix"><value>.jsp</value></property>
5. </bean>
定義UrlHandlerMapping
Java代碼
1. <bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
2. lt;property name="urlMap">
3. <map>
4. <entry key="/b/*"><ref bean="bController"></ref></entry>
5. </map>
6. lt;/property>
7. </bean>
定義MethodNameResolver
一共定義了3個(gè)不同類(lèi)型的MethodNameResolver.
Java代碼
1. <!-- MethodNameResolver Definition -->
<bean id="bMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
2.
3. <property name="paramName" value="method"></property>
4. <property name="logicalMappings">
5. <props>
6. <prop key="doSearch">doSearch</prop>
7. </props>
8. </property>
9. </bean>
10.
<bean id="cMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver">
11.
12. </bean>
13.
<bean id="dMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
14.
15. <property name="mappings">
16. <value>
17. /b/page.html=doSearch
18. </value>
19. </property>
20. </bean>
定義Controller
Java代碼
1. <!-- Controller Definition -->
2. <bean id="bController" class="cn.iwoo.server.controller.BController">
3. <!-- <property name="methodNameResolver"><ref local="bMethodNameResolver"/></property> -->
4. <!-- <property name="methodNameResolver"><ref local="cMethodNameResolver"/></property> -->
5. <property name="methodNameResolver"><ref local="dMethodNameResolver"/></property>
6. </bean>
測(cè)試
下面是對(duì)應(yīng)于不同MethodNameResolver的測(cè)試url.
http://localhost:9080/cn.iwoo/spring/b?method=doSearch
http://localhost:9080/cn.iwoo/spring/b/doSearch
http://localhost:9080/cn.iwoo/spring/b/page.html
注:/b/是我的controller的映射前綴,在PropertiesMethodNameResolver的mappings配置里面,網(wǎng)址必須是/b/開(kāi)頭,也就是controller的前綴也需
要寫(xiě)進(jìn)去. 這是我測(cè)試的結(jié)果,不知是否必須這樣.
</script>