struts2中result的type跳转类型总结
1,局部result和全局result
局部result:包含在Action定義中, result屬性是一個(gè)Action的子元素。其作用范圍只能在本Action中。
全局result:使用<global-result>來(lái)定義,其作用范圍是所有的Action都可以使用
2,result的類(lèi)型
Struts2框架默認(rèn)配置中已經(jīng)提供了很多的result類(lèi)型,可以打開(kāi)struts-default.xml配置文件來(lái)查看
橙色底是常用的幾個(gè)類(lèi)型:
chain: ? ? ?Action鏈?zhǔn)教幚淼慕Y(jié)果類(lèi)型,也就是將結(jié)果轉(zhuǎn)發(fā)到這個(gè)action中,服務(wù)端跳轉(zhuǎn)到Action;
chart: ? ? ??整合JFreeChart的結(jié)果類(lèi)型
dispatcher: 用于整合JSP的結(jié)果類(lèi)型
freemarker:用于整合freemarker結(jié)果類(lèi)型。
httpheader:用于控制特殊的HTTP行為的結(jié)果類(lèi)型。
jasper: ? ? ? ?用于JasperReports整合的結(jié)果類(lèi)型
jsf: ? ? ? ? ? ? ? 用于整合JSF后的結(jié)果類(lèi)型
redirect: ? ? ?實(shí)際上dispatcher和redirect的區(qū)別就是在于轉(zhuǎn)發(fā)和重定向的區(qū)別。
redirect-action:用于直接redirect action。
stream: ? ? ?用于向?yàn)g覽器返回一個(gè)Inputstream(用于文件下載)
tiles: ? ? ? ? ? 用于整合Tiles后的結(jié)果類(lèi)型。
velocity: ? ? 用于整合Velocity的結(jié)果類(lèi)型。
xslt: ? ? ? ? ? ?用于整合XML LT的結(jié)果類(lèi)型。
plaintext: ? 用于顯示某個(gè)頁(yè)面的源代碼
1,chain類(lèi)型:即是服務(wù)器跳轉(zhuǎn)action
Struts2框架支持配置多個(gè)Action組成一個(gè)鏈或者工作流來(lái)處理用戶的請(qǐng)求,而Action鏈的實(shí)現(xiàn),是通過(guò)攔截器 ChainingInterceptor完成的。 ChainingInterceptor在源執(zhí)行完畢后,將源Action的用戶請(qǐng)求參數(shù)、值棧、session的數(shù)據(jù)賦值給目的Action,也就是 說(shuō),在執(zhí)行多個(gè)Action過(guò)程中,參數(shù)都是保留的。
2,redirect類(lèi)型
redirect結(jié)果類(lèi)型與Struts2框架默認(rèn)的結(jié)果類(lèi)型dispatcher相對(duì)應(yīng)。 到dispatcher類(lèi)型是將請(qǐng)求轉(zhuǎn)發(fā)到指定的視圖資源,而redirect類(lèi)型是重定向到指定的視圖資源。重定向?qū)?huì)丟失所有的參數(shù)、值棧和請(qǐng)求屬 性,即同時(shí)失去了Action的處理結(jié)果。而dispatcher是類(lèi)型轉(zhuǎn)發(fā),將會(huì)把上述的所有數(shù)據(jù)資源轉(zhuǎn)發(fā)給視圖資源。這種機(jī)制和servlet技術(shù)中的response.sendRedict()和request.getRequestDispacher().forward(),是一樣的道理。
使用redirect類(lèi)型重定向action時(shí),需要加后綴,如xxx.action
<result name="success" type="redirect">joblistaction.action</result>
3,redirect-action類(lèi)型:外部跳轉(zhuǎn)到Action;
redirect-action結(jié)果類(lèi)型與redirect結(jié)果類(lèi)型非常相似,都是重新生成一個(gè)新的請(qǐng)求,都是重新定向.但是使用redirect-action類(lèi)型時(shí)不需要加后綴“.action”.
4,dispatcher 用來(lái)轉(zhuǎn)向頁(yè)面,通常處理JSP
默認(rèn)是dispatcher,該類(lèi)型支持JSP視圖技術(shù)。
對(duì)應(yīng)子元素<param>,可以指定下面兩個(gè)屬性:
location:該屬性定義了該視圖對(duì)應(yīng)的實(shí)際視圖資源
parse:該參數(shù)指定是否可以在實(shí)際視圖名字中使用OGNL表達(dá)式,Struts2框架默認(rèn)該屬性為true,即支持OGNL表達(dá)式。
如果沒(méi)有指定result的name屬性,則系統(tǒng)會(huì)默認(rèn)為success;
如果沒(méi)有指定location屬性,系統(tǒng)會(huì)把<result> </result>中間的字符串當(dāng)作實(shí)際視圖資源來(lái)處理。
5.plainText方式
這種方式一般來(lái)說(shuō)使用的比較少,可能用到的情況:原樣輸出源代碼。
總結(jié)
以上是生活随笔為你收集整理的struts2中result的type跳转类型总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CSS边框素材
- 下一篇: struts2的action之间和act