HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
          Spring提供了MethodNameResolver的三種方式:

          1 : ParameterMethodNameResolver,這個可以根據請求的參數來確定一個需要調用的方法。
          例如,http://www.sf.net/index.view?testParam=testIt,這個請求會調用名稱為testIt的處理方法。

          2 : InternalPathMethodNameResolver,這個可以根據請求的路徑名稱來調用相應的方法。
          例如,http://www.sf.net/testing.view,這個請求會調用testing方法。

          3 : PropertiesMethodNameResolver,這個可以根據一個URLs 映射列表來調用相應的方法。
          例如,如果定義了/index/welcome.html=doIt,那么當請求為/index/welcome.html時,會調用doIt方法。在定義URLs時可以使用通配符。/**/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>
          定義一個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">
          熱點推薦
          中國民間魔術、原來如此
          百張三維立體圖
          社交禮儀講座
          75
          為什么要使用三家禽肉不能吃的中國各省人口排發人警醒:一個一個人的世界
          新概念英語學習英語名人名言
          經典感悟的十個現實生活中的你[原創
          壯哉,
          落伍沒?盤點
          寧靜(音畫)
          給想干事的人以衛星電視初學者相關文章:
          Spring架構設計-增強MultiActionController
          MultiActionController綁定command
          Spring的MultiActionController使用
          推薦圈子: GT-Grid
          更多相關推薦
          Google
          Java
          Spring Wire
          MVC
          Compression Spring
          關閉
          MultiActionController與3種MethodNameResolver的配置http://www.360doc.com/content/10/0329/17/968587_20...
          第1頁 共3頁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個不同類型的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>
          測試
          下面是對應于不同MethodNameResolver的測試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配置里面,網址必須是/b/開頭,也就是controller的前綴也需
          要寫進去. 這是我測試的結果,不知是否必須這樣.



          </script>

          posted on 2011-07-29 16:00 helloworld2008 閱讀(1054) 評論(0)  編輯  收藏 所屬分類: java - spring
          主站蜘蛛池模板: 桑植县| 宾阳县| 贺州市| 东乡族自治县| 武宁县| 大港区| 三门县| 惠水县| 和田市| 东明县| 霍城县| 融水| 大竹县| 革吉县| 普兰县| 全州县| 益阳市| 潜山县| 务川| 南江县| 尤溪县| 东乡族自治县| 庄浪县| 禹城市| 房产| 涟源市| 滦南县| 咸丰县| 岚皋县| 扶余县| 罗定市| 榆中县| 昆山市| 海南省| 威宁| 中西区| 若羌县| 宣武区| 积石山| 台湾省| 镇雄县|