struts 多module中 Cannot retrieve mapping for action

          Posted on 2006-04-07 20:56 gong 閱讀(3541) 評論(2)  編輯  收藏 所屬分類: struts
          ? struts 中如果配置多個module, 可能有問題, 我調試了struts源碼發現確實是問題, 有待于網友們進一步確認.我使用的是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 正確.


          ???? 但把action 放到jsp頁面中就出錯, 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)
          ?
          我調試了struts 源碼發現 剛開始 也能取到module 的name 值為admin, 但在后續處理的時候就把該值丟了, 于是struts只能從struts-config.xml 文件讀取, 而不是從struts-config-admin.xml中讀取action, 所有就找不到了action, 拋出異常.
          ?
          ? struts 1.2 我還有待測試, 不知道是否有同樣的問題.?

          ? 其它相同問題的網友發言:

          ??? ?????原文鏈接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   回復  更多評論   

          2006-04-07 21:18 by dudu
          你的三篇文章不合適發表在首頁, 應該放在新手區!

          # re: struts 多module中 Cannot retrieve mapping for action [未登錄]  回復  更多評論   

          2011-04-07 15:45 by aa
          不是有問題,而是程序運行過程中只識別并加載名為struts-config.xml的文件,其它的都識別不了, 如果配置多個的話必須在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> <!--這里可以添加多個自己定義的文件-->
          </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>
          這樣的話就可以正常使用了。

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

          Copyright © gong

          主站蜘蛛池模板: 浮梁县| 泰来县| 静宁县| 巴南区| 海南省| 宁波市| 雷波县| 台中市| 吉安县| 都昌县| 虞城县| 柘荣县| 常州市| 新干县| 南城县| 邳州市| 绍兴市| 甘孜| 石河子市| 宜川县| 封丘县| 图们市| 南开区| 彰化市| 永善县| 浦城县| 聂荣县| 龙海市| 新和县| 胶州市| 色达县| 彰武县| 汨罗市| 祥云县| 乌鲁木齐县| 乌拉特中旗| 凤山市| 嘉义市| 紫云| 乐亭县| 南涧|