2006年4月7日

          ? 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

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

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

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

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

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

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


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

          Copyright © gong

          主站蜘蛛池模板: 周至县| 武胜县| 鄯善县| 双牌县| 隆尧县| 保德县| 易门县| 通州区| 通山县| 互助| 泰兴市| 天门市| 得荣县| 车致| 丰台区| 融水| 克拉玛依市| 泌阳县| 通许县| 繁昌县| 太仆寺旗| 锡林浩特市| 辛集市| 健康| 洛川县| 邻水| 巴彦县| 新晃| 云浮市| 永定县| 静海县| 石首市| 宁武县| 恭城| 石狮市| 资源县| 兴城市| 襄城县| 北海市| 都兰县| 马尔康县|