<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ZeroBlue

    留出時間,讓自己微笑。
    posts - 6, comments - 12, trackbacks - 0, articles - 0
       :: 首頁 ::  :: 聯(lián)系 ::  :: 管理

    SpringMVC MultiActionController的使用-最簡化教程

    Posted on 2006-08-31 13:39 zeroblue 閱讀(10052) 評論(3)  編輯  收藏 所屬分類: Spring
    Step 1:配置web.xml
    <?xml?version="1.0"?encoding="UTF-8"?>
    <web-app?version="2.4"?xmlns="http://java.sun.com/xml/ns/j2ee"
    ????xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
    ????xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee?
    ????http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    >

    ????
    <display-name>springapp</display-name>
    ????????
    ????
    <servlet>
    ????????
    <servlet-name>springMVC</servlet-name>
    ????????
    <servlet-class>
    ????????????org.springframework.web.servlet.DispatcherServlet
    ????????
    </servlet-class>
    ????????
    <load-on-startup>1</load-on-startup>
    ????
    </servlet>

    ????
    <servlet-mapping>
    ????????
    <servlet-name>springMVC</servlet-name>
    ????????
    <url-pattern>/page/*</url-pattern>
    ????
    </servlet-mapping>

    </web-app>
    servlet-mapping定義所有以/page/開頭的url請求都會被spring 的DispatcherServlet處理轉(zhuǎn)發(fā)。默認情況下DispatcherServlet會讀取<servlet-name>-servlet.xml文件的配置信息初始化,該文件中urlMapping的定義決定當(dāng)前請求轉(zhuǎn)發(fā)給哪個controller來處理。

    Step2:定義/WEB-INF/springMVC-servlet.xml
    ?
    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>
    ????
    <!--?方法名解析器?-->
    ????
    <bean?id="InternalPathMethodNameResolver"
    ????????class
    ="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver"?/>
    ????????
    ????
    <!--?視圖解析器?-->
    ????
    <bean?id="viewResolver"
    ????????class
    ="org.springframework.web.servlet.view.InternalResourceViewResolver">
    ????????
    <property?name="viewClass">
    ????????????
    <value>org.springframework.web.servlet.view.JstlView</value>
    ????????
    </property>
    ????
    </bean>
    ????
    ????
    <bean?id="controller"?class="com.controller.IndexController">
    ????????
    <property?name="methodNameResolver">
    ????????????
    <ref?bean="InternalPathMethodNameResolver"?/>
    ????????
    </property>
    ????
    </bean>

    ????
    <bean?id="urlMapping"
    ????????class
    ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    ????????
    <property?name="mappings">
    ????????????
    <props>
    ????????????????
    <prop?key="/controller/*">controller</prop>
    ????????????
    </props>
    ????????
    </property>
    ????
    </bean>
    </beans>
    urlMapping定義/controller/開頭的url請求由名字為controller的控制器來處理,因為是多動作處理器,所以要定義MethodNameResolver來告訴springMVC應(yīng)該調(diào)用controller的哪個方法,這里用的是InternalPathMethodNameResolver,該方法名解釋器會把整個URL中最后一個"/"和最后一個"."之間的部分作為要調(diào)用的方法名

    Step3:定義controller類并繼承MultiActionController?
    package?com.controller;

    import?java.io.IOException;
    import?java.util.HashMap;
    import?java.util.Map;

    import?javax.servlet.ServletException;
    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?IndexController?extends?MultiActionController?{
    ????
    ????
    public?ModelAndView?method1(HttpServletRequest?request,
    ????????????HttpServletResponse?respnose)?
    throws?ServletException,?IOException?{
    ????????Map?model?
    =?new?HashMap();
    ????????model.put(
    "message",?"你調(diào)用的是方法1");
    ????????
    return?new?ModelAndView("/index.jsp",?"model",?model);
    ????}

    ????
    ????
    public?ModelAndView?method2(HttpServletRequest?request,
    ????????????HttpServletResponse?respnose)?
    throws?ServletException,?IOException?{
    ????????Map?model?
    =?new?HashMap();
    ????????model.put(
    "message",?"你調(diào)用的是方法2");
    ????????
    return?new?ModelAndView("/index.jsp",?"model",?model);
    ????}

    }


    通過配置文件,訪問上面這個controller中某個方法的url即為:localhost:8080/page/controller/方法名


    Step4:/index.jsp
    <%@?page?language="java"?pageEncoding="UTF-8"%>
    <%@?taglib?prefix="c"?uri="http://java.sun.com/jstl/core_rt"?%>
    <%@?taglib?prefix="fmt"?uri="http://java.sun.com/jstl/fmt"%>?


    <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">

    <html>
    <head></head>??
    <body>

    ????
    <c:out?value="${model.message}"/>
    </body>
    </html>
    因為InternalPathMethodNameResolver方法名解釋器會把整個URL中最后一個"/"和最后一個"."之間的部分作為要調(diào)用的方法名,所以你可以在這個URL后面加任意文件格式的后綴,比如:
    localhost:8080/page/controller/method1.jsp

    localhost:8080/page/controller/method2.html
    很爽吧,和真實的URL地址一樣。


    另:開發(fā)環(huán)境:MyEclipse5.0M2+tomcat5.5
      需要用到spring.jar和jstl.jar兩個包。

    附:源代碼下載

    評論

    # re: SpringMVC MultiActionController的使用-最簡化教程[未登錄]  回復(fù)  更多評論   

    2007-12-24 14:36 by qq
    運行出錯,因為少了一個JAR包:standard.jar

    # re: SpringMVC MultiActionController的使用-最簡化教程  回復(fù)  更多評論   

    2008-04-29 17:55 by sgwood
    不錯

    # re: SpringMVC MultiActionController的使用-最簡化教程[未登錄]  回復(fù)  更多評論   

    2008-07-09 12:13 by 小宋
    有你這個例子我少看好幾天書啊!謝謝!

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 欧洲人成在线免费| 国产又黄又爽胸又大免费视频| 日韩电影免费在线观看中文字幕| 亚洲日韩中文字幕日韩在线| 五月婷婷免费视频| 亚洲午夜成人精品电影在线观看| 青青青视频免费观看| 亚洲美女在线国产| 两个人看www免费视频| 亚洲AV成人一区二区三区AV| 日本免费一区二区三区四区五六区| 亚洲视频网站在线观看| 猫咪社区免费资源在线观看 | 国产亚洲综合色就色| 在线观看免费无码专区| 久久久无码精品亚洲日韩京东传媒 | 日韩视频在线免费| 免费观看四虎精品成人| 亚洲成色WWW久久网站| 免费精品国偷自产在线在线 | 亚洲av成人一区二区三区在线播放 | 久久亚洲AV无码西西人体| 精品一卡2卡三卡4卡免费视频| 亚洲性无码av在线| 啦啦啦www免费视频| 久久成人18免费网站 | 亚洲一区综合在线播放| 天堂在线免费观看中文版| 国产无遮挡色视频免费观看性色 | jizz免费在线观看| 久久亚洲AV成人无码软件| 又爽又高潮的BB视频免费看| 中文字幕免费不卡二区| 伊人久久亚洲综合影院首页| 亚洲人成色7777在线观看不卡| 国产高清不卡免费视频| 精品久久亚洲一级α| 亚洲五月六月丁香激情| 国产精品免费_区二区三区观看| 美女隐私免费视频看| 亚洲成在人天堂一区二区|