Posted on 2006-04-07 20:56
gong 閱讀(3534)
評論(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://m.tkk7.com/shaofan/archive/2006/03/01/32974.html ????
????????? 原文鏈接2:http://202.100.72.44/news/itschool/pro/pro44134.htm