![action之間的參數(shù)傳遞和結(jié)果類(lèi)型_第1頁(yè)](http://file4.renrendoc.com/view/061228909ed631f4a7a22d175c41f9eb/061228909ed631f4a7a22d175c41f9eb1.gif)
![action之間的參數(shù)傳遞和結(jié)果類(lèi)型_第2頁(yè)](http://file4.renrendoc.com/view/061228909ed631f4a7a22d175c41f9eb/061228909ed631f4a7a22d175c41f9eb2.gif)
![action之間的參數(shù)傳遞和結(jié)果類(lèi)型_第3頁(yè)](http://file4.renrendoc.com/view/061228909ed631f4a7a22d175c41f9eb/061228909ed631f4a7a22d175c41f9eb3.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
struts2的action之間的參數(shù)傳遞和結(jié)果類(lèi)型action的默認(rèn)結(jié)果類(lèi)型是dispatcher,而action之間發(fā)送請(qǐng)求是不能直接用該結(jié)果類(lèi)型的。一般來(lái)說(shuō),可選的結(jié)果有redirect、redirectAction、chain。前兩種都是屬于頁(yè)面跳轉(zhuǎn),也就是說(shuō),發(fā)送請(qǐng)求以后,地址欄的地址會(huì)刷新為被請(qǐng)求的action的地址,而chain則不會(huì)更新地址。redirect-action:“這個(gè)Result使用ActionMapperFactory提供的ActionMapper來(lái)重定位瀏覽器的URL來(lái)調(diào)用指定的action和(可選的)namespace.這個(gè)Result比ServletRedirectResult要好.因?yàn)槟悴恍枰裊RL編碼成xwork.xml中配置的ActionMapper提供的模式.這就是說(shuō)你可以在任意點(diǎn)上改變URL模式而不會(huì)影響你的應(yīng)用程序.因此強(qiáng)烈推薦使用這個(gè)Result而不是標(biāo)準(zhǔn)的redirectresult來(lái)解決重定位到某個(gè)action的情況.”---webwork2的說(shuō)法。redirect:"調(diào)用{@linkHttpServletResponse#sendRedirect(String)sendRedirect}方法來(lái)轉(zhuǎn)到指定的位置。HTTP響應(yīng)被告知使瀏覽器直接跳轉(zhuǎn)到指定的位置 (產(chǎn)生客戶(hù)端的一個(gè)新請(qǐng)求).這樣做的結(jié)果會(huì)使剛剛執(zhí)行的 action(包括action實(shí)例,action中的錯(cuò)誤消息等)丟失,不再可用?!焙?jiǎn)單說(shuō),兩者的共同點(diǎn)是,*地址欄會(huì)變化,所有前一個(gè)action的請(qǐng)求參數(shù)都會(huì)丟失,當(dāng)然也包括action的屬性值也會(huì)丟失。*路徑寫(xiě)法稍有不同,redirectAction請(qǐng)求下一個(gè)action時(shí),不帶后綴.action,而redirect和普通URL寫(xiě)法一致。*redirectAction支持param來(lái)附加請(qǐng)求參數(shù),但是這往往會(huì)導(dǎo)致ServletActionRedirectResult報(bào)找不到xxx屬性的警告,這大概是由于無(wú)法識(shí)別是IOC注入,還是參數(shù)附加URL導(dǎo)致的,雖然是WARN級(jí)別,不過(guò)寧可寫(xiě)成xxx?a=x&b=y的形式,而&還需要寫(xiě)作&的格式,否則會(huì)報(bào)xml格式錯(cuò)誤。(另外,這種url形式,作為param的actionName的值也是可以正常使用的)chain:相當(dāng)于是forward,首先表現(xiàn)為地址欄不會(huì)改變,類(lèi)似 dispatcher,同時(shí),它的特點(diǎn)是能夠在多個(gè)action中共享表單傳遞過(guò)來(lái)的數(shù)據(jù),同時(shí),按照action鏈的順序,相關(guān)action的屬性值也會(huì)傳遞下去,這表示在最后的視圖頁(yè),你可以得到前面所有action的屬性值(如果有g(shù)et方法的話)。對(duì)于多個(gè)action具有相同屬性值的話,后續(xù)action會(huì)先使用前面的action的數(shù)據(jù)來(lái)進(jìn)行賦值,然后再進(jìn)行邏輯處理并傳遞下去。看起來(lái)是很完美,可是卻有很大的問(wèn)題。如果后面的 action需要調(diào)用前面action的屬性值,他得保證具有同樣的屬性值,否則你無(wú)法接收到前面 action的值。他無(wú)法像redirect-action一樣通過(guò)附加參數(shù)獲取,他不支持xxx?a=x&b=y的形式。這將導(dǎo)致很大的耦合性和無(wú)效參數(shù)的泛濫,無(wú)法通過(guò)配置文件傳遞參數(shù)也很麻煩。另外,很困擾的一點(diǎn)就是,如果在action鏈靠前的action方法內(nèi)出現(xiàn)錯(cuò)誤(如action的hasError方法返回true)或者發(fā)生異常,他就會(huì)強(qiáng)迫你定義 input結(jié)果,包括后面的action也要定義,否則就會(huì)報(bào)錯(cuò)。而實(shí)際上,即使符合了以上條件,他仍不會(huì)執(zhí)行后面的 action,而是直接跳到后面的action的input視圖。除非發(fā)生錯(cuò)誤的 action返回input,并且type為"chain”并且后一個(gè)action的方法必須為input,否則后續(xù)方法不會(huì)執(zhí)行,而直接定位到了最后的物理視圖。這讓我覺(jué)得chain的適用范圍變的十分窄, 據(jù)說(shuō)webwork2已經(jīng)不提倡使用chain,這個(gè)沒(méi)考證過(guò)。提交服務(wù)器處理業(yè)務(wù)后結(jié)果返回頁(yè)面的處理,Struts2提供了對(duì)不同種類(lèi)返回結(jié)果的支持,常見(jiàn)的有JSP,F(xiàn)reeMarker,Velocity等。struts.xml配置文件中result的語(yǔ)法:<resultname=""type="">xxxxx</result>Struts2支持的不同類(lèi)型的返回結(jié)果為:ChainResult-->type="chain"用來(lái)處理Action鏈DispatcherResult-->type="dispatcher"用來(lái)轉(zhuǎn)向頁(yè)面,通常處理JSPFreeMarkerResult-->type="freemarker"處理FreeMarker模板HttpHeaderResult-->type="httpheader"用來(lái)控制特殊的Http行為RedirectResult-->type="redirect"重定向到一個(gè)URLRedirectActionResult-->type="redirectAction"
重定向到一個(gè)ActionStreamResult-->type="stream"向?yàn)g覽器發(fā)送InputSream對(duì)象,通常用來(lái)處理文件下載VelocityResult-->type="velocity"處理Velocity模板X(qián)LSTResult-->type="xslt"處理XML/XLST模板
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新版華東師大版八年級(jí)數(shù)學(xué)下冊(cè)《16.1.2分式的基本性質(zhì)約分》聽(tīng)評(píng)課記錄4
- 北師大版歷史九年級(jí)下冊(cè)第13課《新興力量的崛起》聽(tīng)課評(píng)課記錄
- 人教版數(shù)學(xué)七年級(jí)上冊(cè)2.1《去括號(hào)》聽(tīng)評(píng)課記錄
- 人教部編版九年級(jí)歷史下冊(cè)聽(tīng)課評(píng)課記錄:第13課《羅斯福新政》
- 人教版數(shù)學(xué)九年級(jí)上冊(cè)24.2《直線和圓的位置關(guān)系(1)》聽(tīng)評(píng)課記錄
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)《完全平方公式》聽(tīng)評(píng)課記錄6
- 小學(xué)二年級(jí)上冊(cè)除法口算
- 九年級(jí)第一學(xué)期班主任總結(jié)
- 五年級(jí)下冊(cè)口算題
- 蘇教版四年級(jí)數(shù)學(xué)上冊(cè)口算練習(xí)題
- 采購(gòu)支出管理制度
- 安全生產(chǎn)目標(biāo)責(zé)任制考核表
- 2023年廣東省中考試卷(語(yǔ)數(shù)英物化史生等共11套)帶答案解析
- DFX工藝設(shè)計(jì)方法介紹
- 混凝土試件臺(tái)賬
- 中英文財(cái)務(wù)報(bào)表空白模板(金融非金融完整版)
- 人機(jī)料法環(huán)測(cè)檢查表
- 一年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)導(dǎo)學(xué)案 各種各樣的汽車(chē) 全國(guó)通用
- 婦產(chǎn)科護(hù)理學(xué)會(huì)陰部手術(shù)病人的護(hù)理
- 商洛市商州區(qū)金礦煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
評(píng)論
0/150
提交評(píng)論