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

          主站蜘蛛池模板: 阜平县| 德州市| 洛浦县| 鱼台县| 东港市| 黎平县| 新建县| 中宁县| 饶阳县| 博白县| 丹东市| 常州市| 嘉禾县| 舟曲县| 册亨县| 玉树县| 绥德县| 疏勒县| 拉萨市| 汶上县| 阿城市| 迁西县| 论坛| 田阳县| 内黄县| 宣武区| 年辖:市辖区| 陆良县| 阿尔山市| 富川| 枣庄市| 泸西县| 奉贤区| 洛扎县| 阿克陶县| 深圳市| 旬邑县| 南木林县| 岫岩| 行唐县| 冀州市|