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

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

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

    隨筆-13  評論-9  文章-9  trackbacks-0

    總體圖表(參照stucts)

    DispatcherServlet=ActionServlet
    HandlerMapping=Struts-config.xml
    Controller=Action
    ModelAndView=mapping.findforward(string) 中的string;
    ViewResolver=mapping.findforward(string) 中string的解釋器

    特別注意:
    1.在web.xml里面配置好
    <servlet>
    ??? <servlet-name>springapp</servlet-name>
    ??? <servlet-class>org.springframework.web.servlet.DispatcherServlet
    ??? </servlet-class>
    ??? <load-on-startup>1</load-on-startup>
    ? </servlet>
    ?<servlet-mapping>
    ??? <servlet-name>springapp</servlet-name>
    ??? <url-pattern>*.do</url-pattern>
    ? </servlet-mapping>

    不需要配置context-param
    <context-param>
    ? <param-name>contextConfigLocation</param-name>
    ? <param-value>/WEB-INF/springapp-servlet.xml</param-value>

    </context-param>
    DispatcherServlet?能夠自動的到WEB-INF下面查找與他同名的后面接-servlet,.xml的配置文件。
    (springapp-servlet.xml)

    注意:DispatcherServlet?處理的跳轉必須要在工程名下面。例如:工程名為:SpringMvc.則Http://localhost:8080/SpringMvc/test.htm可以跳轉。
    Http://localhost:8080/test.htm?不能跳轉

    ?詳細說明MultiActionController的配置吧:
    首先在bean.xml里面:

    <bean id="methodNameResolver"
    class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    <property name="paramName"><value>method</value> //相當于DispatchAction的method后面接需要觸發的方法
    </property>
    ?
    //另一個觸發方法的配置
    //當提交coureList.htm時候觸發coursesUnsorted方法,當提交coursesSort.htm時候觸發coursesSortByDate方法

    <property name="mapping">
    ? <props>
    ????? <prop key="/coureList.htm">coursesUnsorted</prop>
    ???? ?<prop key="/coursesSort.htm">coursesSortByDate</prop>
    ???</props>
    </property>
    </bean>

    //默認方式頁面跳轉到Controller
    <bean name="/jsp/test.do" class="org.nightwalker.spaces.web.controller.TestController">
    <property name="methodNameResolver">
    <ref local="methodNameResolver"/>
    </property>
    </bean>
    ?

    //SimpleUrlHandlerMapping頁面跳轉到Controller
    <bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHand">
    <property name="mapping">
    <props>
    <prop key="/listCourses.htm">listCourseController</prop>
    <prop key="/register.htm">registerController</prop>
    <props>
    </props>
    </property>
    </bean>

    配置呢就這么簡單。methodNameResolver指定了調用MultiActionController中方法的方式,例如,如果在你的MultiActionController中有如下方法:


    public ModelAndView insertAccount(HttpServletRequest request,HttpServletResponse,Account account)
    {
    }

    那么要調用這個方法,你的JSP頁面的請求URL就應該這樣寫:
    <form action="test.do?method=insertAccount">
    </form>

    至于綁定什么command和JSP是沒有關系的。你在MultiActionController中的方法簽名第三個參數是什么對象,Spring就會把request中參數的值綁定到方法簽名的第三個對象中。

    例子我倒是沒有,最直接的辦法就是去看一下MultiActionController的源代碼,非常簡單拉,一看就明白了。



    protectedfinal ModelAndView invokeNamedMethod(String methodName, HttpServletRequest request, HttpServletResponse response)throwsException
    {
    ? ? ? ? ? ? ? ?

    ? ? ? ? ? ? ? ? ? ? ? ?
    // If last parameter isn't of HttpSession type, it's a command.
    // 在這里,Spring會判斷你的請求方法里面第三個參數的類型。如果第三個參數類型不是HttpSession,就認為是要綁定的command。
    if(method.getParameterTypes().length >= 3 &&
    !method.getParameterTypes()[method.getParameterTypes().length - 1].equals(HttpSession.class))
    {
    ? ? // 根據類型利用反射產生Command對象
    ? ? Object command = newCommandObject(method.getParameterTypes()[method.getParameterTypes().length - 1]);
    ? ? params.add(command);
    ? ?// 綁定command對象
    ? ?bind(request, command);
    }


    // 最后通過反射去調用你的方法,也就是說,在執行你的方法時,command已
    // 經幫你綁定好拉,你直接用就可以了。? ? ? ? ? ? ? ? ? ? ? ?
    return(ModelAndView) method.invoke(this.delegate, params.toArray(newObject[params.size()]));
    }

    使用模板視圖
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix"><value>/jsp</value></property>//前綴
    <property name="suffix"><value>.jsp</value></property>//后綴
    </bean>

    posted on 2006-06-20 10:50 Dragonofson 閱讀(1633) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 最近2018中文字幕免费视频| 亚洲av无码成h人动漫无遮挡| 91久久精品国产免费一区| 免费在线观看自拍性爱视频| 亚洲综合久久一本伊伊区| 亚洲日本在线观看| 337p日本欧洲亚洲大胆裸体艺术| 日韩一级在线播放免费观看| 成人免费黄色网址| 无码av免费一区二区三区试看| 三级片免费观看久久| 亚洲AV成人无码网天堂| 亚洲欧美第一成人网站7777| 亚洲伦理中文字幕| 亚洲第一区视频在线观看| 亚洲AV无码精品色午夜在线观看| 国产精品V亚洲精品V日韩精品| 免费一级毛片在播放视频| 国产精品冒白浆免费视频| 我要看WWW免费看插插视频| 黄色永久免费网站| 免费黄色福利视频| 18禁成人网站免费观看| 三年片在线观看免费观看大全一| 西西人体免费视频| 丝袜足液精子免费视频| a级毛片免费全部播放| 丝袜足液精子免费视频| 永久免费av无码网站yy| 免费国产99久久久香蕉| 人人玩人人添人人澡免费| 久久精品成人免费看| 无码人妻精品中文字幕免费| 香港a毛片免费观看 | 成人激情免费视频| 亚洲人成网站免费播放| 在线免费观看一区二区三区| 日韩中文字幕免费| 国产精品亚洲二区在线观看 | 成人片黄网站色大片免费观看APP| 国产综合免费精品久久久|