雅典之夏的小站
          知人者智 自知者明 Fighting!!

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

          posted on 2006-10-30 14:07 rkind 閱讀(8532) 評(píng)論(1)  編輯  收藏 所屬分類: Struts

          FeedBack:
          # re: Struts中Cannot find bean XXX in any scope的問(wèn)題
          2012-07-18 18:14 | yuhuashi
          我也覺(jué)得奇怪,就算Action里面沒(méi)有setAttribute("");為什么提取出來(lái)的不是null,而是直接拋出異常?  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 宁都县| 绥江县| 昭通市| 勃利县| 江陵县| 庄河市| 拉孜县| 阜平县| 嘉鱼县| 眉山市| 和硕县| 建平县| 安吉县| 峡江县| 福鼎市| 崇明县| 芦溪县| 宝丰县| 凤城市| 宁武县| 新源县| 马尔康县| 涟源市| 响水县| 宁蒗| 滨州市| 孝义市| 始兴县| 双城市| 南部县| 满洲里市| 东乡族自治县| 阿图什市| 龙里县| 翁牛特旗| 南漳县| 龙门县| 镇远县| 西畴县| 碌曲县| 尼玛县|