struts 多module中 Cannot retrieve mapping for action

          Posted on 2006-04-07 20:56 gong 閱讀(3546) 評(píng)論(2)  編輯  收藏 所屬分類: struts
          ? struts 中如果配置多個(gè)module, 可能有問(wèn)題, 我調(diào)試了struts源碼發(fā)現(xiàn)確實(shí)是問(wèn)題, 有待于網(wǎng)友們進(jìn)一步確認(rèn).我使用的是struts1.1, 配置了兩個(gè)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>

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


          ???? 但把a(bǔ)ction 放到j(luò)sp頁(yè)面中就出錯(cuò), 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) 剛開(kāi)始 也能取到module 的name 值為admin, 但在后續(xù)處理的時(shí)候就把該值丟了, 于是struts只能從struts-config.xml 文件讀取, 而不是從struts-config-admin.xml中讀取action, 所有就找不到了action, 拋出異常.
          ?
          ? struts 1.2 我還有待測(cè)試, 不知道是否有同樣的問(wèn)題.?

          ? 其它相同問(wèn)題的網(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

          Feedback

          # re: struts 多module中 Cannot retrieve mapping for action   回復(fù)  更多評(píng)論   

          2006-04-07 21:18 by dudu
          你的三篇文章不合適發(fā)表在首頁(yè), 應(yīng)該放在新手區(qū)!

          # re: struts 多module中 Cannot retrieve mapping for action [未登錄](méi)  回復(fù)  更多評(píng)論   

          2011-04-07 15:45 by aa
          不是有問(wèn)題,而是程序運(yùn)行過(guò)程中只識(shí)別并加載名為struts-config.xml的文件,其它的都識(shí)別不了, 如果配置多個(gè)的話必須在web.xml聲明才可以正常使用。<servlet>
          <servlet-name>action</servlet-name>
          <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
          <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config-admin.xml</param-value> <!--這里可以添加多個(gè)自己定義的文件-->
          </init-param>
          <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
          </init-param>
          <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
          </init-param>
          <load-on-startup>0</load-on-startup>
          </servlet>

          <servlet-mapping>
          <servlet-name>action</servlet-name>
          <url-pattern>*.do</url-pattern>
          </servlet-mapping>
          這樣的話就可以正常使用了。

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


          網(wǎng)站導(dǎo)航:
           

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

          Copyright © gong

          主站蜘蛛池模板: 社旗县| 电白县| 繁峙县| 佛山市| 遂宁市| 诏安县| 五峰| 普宁市| 台山市| 凌源市| 璧山县| 清原| 友谊县| 临澧县| 仁怀市| 尼木县| 新营市| 桐乡市| 荔浦县| 临澧县| 万盛区| 巨野县| 和龙市| 东至县| 聊城市| 西乌珠穆沁旗| 玛多县| 琼结县| 雷波县| 尼玛县| 潜江市| 肇东市| 陇川县| 江门市| 兰溪市| 师宗县| 股票| 新田县| 区。| 宁化县| 平顶山市|