Java學習

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

           

          Struts中Cannot find bean XXX in any scope的問題

          Struts中Cannot find bean XXX in any scope的問題

          這就是在前面的簡單應用中,在view中,通過<bean:write name="myform" property="name">調用Actionform時出的問題,這個問題的直接原因很簡單就是:找不到"myform"這個Bean,用網 上的話說就是在Action里一般會request.setAttribute()一些對 象,然后在轉向的jsp文件里(用tag或request.getAttribute()方法)得到這些對象并顯示出來。這個異常是說jsp要得到一個對 象,但前面的Action里并沒有將對象設置到request(也可以是session、servletContext)里??赡苁敲皱e了,請檢查 jsp里的tag的一般是name屬性,或getAttribute()方法的參數值;或者是Action邏輯有問題沒有執行 setAttribute()方法就先轉向了。
          還有另外一個可能,純粹是jsp文件的問題,例如<logic:iterate>會指 定一個id值,然后在循環里<bean:write>使用這個值作為name的值,如果這兩個值不同,也會出現此異常。(都是一個道 理,request里沒有對應的對象。)
          ”。
                我對Actionform的機制不理解,心中的疑問:
                1) 如果ActionForm是Struts自動封裝到Request中,那么我可以直接在view.jsp中,能過<bean:write>調 用這個ActionForm,如果假設這種情況成立時,那么Beanwrite中的bean名應該是ActionForm的類名,還是在Struts- config.xml里給ActionForm定義的類名?
                2)如果沒有封裝的話,那么是不是需要在Action中把Actionform通過request.setAttribute("","")放到request中
          還是要放到Session中,
                我測試時候出的問題
                 有一次就是在1)的情況下測試成功的,但是以后再怎么試都不行,那次是引用的Struts-config.xml里給ActionForm定義的類名。非常奇怪,
                  還有就是2)的情況,測試中如果Action和Frombean在一個包下面,那么通過request.setAttribute("",""),就可以獲取到Bean,如果不是的話,有時候行,有時候不行,
                  如果通過request.getSession.setAttribute()設置ActionForm的話,每次都可以,他們的Scope肯定在一個Request中,那么為什么Session就可以,而Request不行。(結論:因為是在Actionfoward中設置了“redirect='true',這樣的話一跳轉時,Request中的內容都會被重置,所以不行,把這一句去掉就可以了”)

          posted on 2009-07-22 09:04 找個美女做老婆 閱讀(1666) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          本blog已經搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 清新县| 正定县| 丘北县| 湘阴县| 昌黎县| 莫力| 利辛县| 沙河市| 靖远县| 宜阳县| 秦安县| 万州区| 太仓市| 武鸣县| 琼结县| 岑溪市| 治县。| 江陵县| 上栗县| 肃宁县| 远安县| 抚顺县| 阜阳市| 黑山县| 陇南市| 弥渡县| 大安市| 定结县| 嘉善县| 贵南县| 娄底市| 绍兴市| 鄢陵县| 紫阳县| 舒兰市| 咸宁市| 英山县| 韶关市| 万盛区| 红安县| 钟祥市|