2006年4月7日

          ? struts 中如果配置多個module, 可能有問題, 我調(diào)試了struts源碼發(fā)現(xiàn)確實是問題, 有待于網(wǎng)友們進(jìn)一步確認(rèn).我使用的是struts1.1, 配置了兩個module:? 缺省: struts-config.xml , admin:?? struts-config-admin.xml

          ?
          ?? category.jsp
          ?? --------------------------------
          ?? <frameset rows="*" cols="180,*" frameborder="yes" framespacing="1px" border="0"? >
          ? ?? ?<frame? name="menuFrame" src="../categoryAction.jspx?method=loadAllMenus" scrolling="No" noresize="noresize"? >
          ? ?? ?<frame? name="deatilFrame" src="categoryDetail.jsp"? >
          ?? ----------------------------------

          ? categoryDetail.jsp
          ? ----------------------------------
          ?? ? <html:form action="categoryAction.jspx?method=saveCategory" >
          ????????? ... ...
          ????? <html:form>
          ? -----------------------------------

          ? struts-config-admin.xml:
          ? ------------------------------------
          ???? <action
          ????? attribute="categoryForm"
          ????? input="/product/categoryDetail.jsp"
          ????? name="categoryForm"
          ????? parameter="method"
          ????? path="/categoryAction"
          ????? scope="request"
          ????? validate="false"
          ????? type="com.book.web.struts.action.CategoryAction" >
          ???? ?
          ?????? <forward name="viewMenu" path="/product/categoryMenu.jsp" />
          ?????? <forward name="succ" path="/product/categoryDetail.jsp" />
          ????? </action>

          ? -----------------------------------
          ????? 以鏈接的形式訪問正確, 直接訪問action http://localhost:8080/promtion/admin/categoryAction.jspx?method=saveCategory 正確.


          ???? 但把a(bǔ)ction 放到j(luò)sp頁面中就出錯, http://localhost:8080/promtion/admin/category.jsp
          ??? javax.servlet.ServletException: Cannot retrieve mapping for action /categoryAction
          ?? ?org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
          ?? ?org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
          ?? ?org.apache.jsp.admin.product.categoryDetail_jsp._jspService(categoryDetail_jsp.java:101)
          ?? ?org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
          ?? ?javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          ?? ?org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
          ?? ?org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
          ?? ?org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
          ?? ?javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          ??
          root cause
          javax.servlet.jsp.JspException: Cannot retrieve mapping for action /categoryAction
          ?? ?org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:810)
          ?? ?org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)???? org.apache.jsp.admin.product.categoryDetail_jsp._jspx_meth_html_form_0(categoryDetail_jsp.java:187)??? org.apache.jsp.admin.product.categoryDetail_jsp._jspx_meth_html_html_0(categoryDetail_jsp.java:147)
          ?? ?org.apache.jsp.admin.product.categoryDetail_jsp._jspService(categoryDetail_jsp.java:92)
          ?? ?org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
          ?? ?javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          ?? ?org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
          ?? ?org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
          ?? ?org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
          ?? ?javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          ?
          我調(diào)試了struts 源碼發(fā)現(xiàn) 剛開始 也能取到module 的name 值為admin, 但在后續(xù)處理的時候就把該值丟了, 于是struts只能從struts-config.xml 文件讀取, 而不是從struts-config-admin.xml中讀取action, 所有就找不到了action, 拋出異常.
          ?
          ? struts 1.2 我還有待測試, 不知道是否有同樣的問題.?

          ? 其它相同問題的網(wǎng)友發(fā)言:

          ??? ?????原文鏈接1:http://www.aygfsteel.com/shaofan/archive/2006/03/01/32974.html ????
          ????????? 原文鏈接2:http://202.100.72.44/news/itschool/pro/pro44134.htm

          posted @ 2006-04-07 20:56 gong 閱讀(3546) | 評論 (2)編輯 收藏

          ? DispatchAction 必須不寫execute(... ...)方法, 否則反而有問題, 使用中我發(fā)現(xiàn)如果你寫了exceute 方法 struts仍然首先調(diào)用改excute()方法, 這是即使你配置了 method 參數(shù)如 action="abcAction.do?method=load" 也無效, struts 仍然首先執(zhí)行execute, 故DispatchAction中不要寫execute( ... ...) 方法.?

          posted @ 2006-04-07 20:32 gong 閱讀(526) | 評論 (1)編輯 收藏

          ?? jsp 頁面提交以后, actionservlet根據(jù)配置文件struts-config.xml 中action 的配置,? 首先到 reqest 或session 中查找對應(yīng)的form(action 的attribute 即為form 對象的名稱)對象是否存在, 如果不存在, 首先new 一個form對象.

          ??? 然后調(diào)用reset方法設(shè)置該form對象的屬性;
          ??? 再從jsp頁面取得屬性并set bean的屬性,
          ??? 然后再調(diào)用validate方法(validate = true),驗證出錯, 則直接返回到input 頁面,正確則調(diào)用action的方法進(jìn)行出來.
          ??

          posted @ 2006-04-07 20:26 gong 閱讀(321) | 評論 (0)編輯 收藏


          僅列出標(biāo)題  

          posts - 3, comments - 3, trackbacks - 0, articles - 0

          Copyright © gong

          主站蜘蛛池模板: 湟源县| 宝应县| 渑池县| 内乡县| 怀柔区| 邹城市| 定西市| 临西县| 永新县| 涟源市| 海口市| 凉山| 泽州县| 扎鲁特旗| 吉林市| 运城市| 子长县| 泸定县| 黎川县| 孝义市| 武威市| 涟源市| 额济纳旗| 元谋县| 云和县| 石河子市| 广宁县| 怀仁县| 寻乌县| 武隆县| 衡水市| 华宁县| 肥乡县| 当涂县| 蒙城县| 仙桃市| 衡水市| 徐水县| 朝阳市| 浦东新区| 樟树市|