教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓(xùn)之Struts2 result type(結(jié)果類型)

更新時間:2016年08月29日17時30分 來源:傳智播客Java培訓(xùn)學(xué)院 瀏覽次數(shù):

Struts2框架提供的結(jié)果類型

已配置結(jié)果類型名  類 名  描 述
dispatcher  org.apache.struts2.dispatcher.
ServletDispatcherResult
 默認(rèn)結(jié)果類型,用來呈現(xiàn)JSP頁面
chain  com.opensymphony.xwork2.
ActionChainResult
 將action和另外一個action鏈接起來
freemarker  org.apache.struts2.views.freemarker.
FreemarkerResult
 呈現(xiàn)Freemarker模板
httpheader  org.apache.struts2.dispatcher.
HttpHeaderResult
 返回一個已配置好的HTTP頭信息響應(yīng)
redirect  org.apache.struts2.dispatcher.
ServletRedirectResult
 將用戶重定向到一個已配置好的URL
redirectAction  org.apache.struts2.dispatcher.
ServletActionRedirectResult
 將用戶重定向到一個已定義好的action
stream  org.apache.struts2.dispatcher.
StreamResult
 將原始數(shù)據(jù)作為流傳遞回瀏覽器端,
該結(jié)果類型對下載的內(nèi)容和圖片非常有用
velocity  org.apache.struts2.dispatcher.
VelocityResult
 呈現(xiàn)Velocity模板
xslt  org.apache.struts2.views.xslt.
XSLTResult
 呈現(xiàn)XML到瀏覽器,
該XML可以通過XSL模板進行轉(zhuǎn)換
plaintext  org.apache.struts2.dispatcher.
PlainTextResult
 返回普通文本類容

簡單說明一下result的name屬性和type屬性:
SUCCESS:Action正確的執(zhí)行完成,返回相應(yīng)的視圖,success是name屬性的默認(rèn)值。
NONE:表示Action正確的執(zhí)行完成,但并不返回任何視圖。
ERROR:表示Action執(zhí)行失敗,返回到錯誤處理視圖。
INPUT:Action的執(zhí)行,需要從前端界面獲取參數(shù),INPUT就是代表這個參數(shù)輸入的界面,一般在應(yīng)用中,會對這些參數(shù)進行驗證,如果驗證沒有通過,將自動返回到該視圖。
LOGIN:Action因為用戶沒有登陸的原因沒有正確執(zhí)行,將返回該登陸視圖,要求用戶進行登陸驗證。
dispatcher:請求轉(zhuǎn)發(fā),底層調(diào)用RequestDispatcher的forward()或include()方法,dispatcher是 type屬性的默認(rèn)值,通常用于轉(zhuǎn)向一個JSP。localtion指定JSP的位置,parse如果為false表示location的值不會被當(dāng)作 OGNL解析,默認(rèn)為true。
redirect:重定向,新頁面無法顯示Action中的數(shù)據(jù),因為底層調(diào)用response.sendRedirect("")方法,無法共享請求范圍內(nèi)的數(shù)據(jù),參數(shù)與dispatcher用法相同。
redirect-action:重定向到另一個Action,參數(shù)與chain用法相同,允許將原Action中的屬性指定新名稱帶入新Action 中,可以在Result標(biāo)簽中添加 <param name=”b”>${a} </param>,這表示原Action中的變量a的值被轉(zhuǎn)給b,下一個Action可以在值棧中使用b來操作,注意如果值是中文,需要做一些編碼處理,因為Tomcat默認(rèn)是不支持URL直接傳遞中文的!
velocity:使用velocity模板輸出結(jié)果,location指定模板的位置(*.vm),parse如果為false,location不被OGNL解析,默認(rèn)為true。
xslt:使用XSLT將結(jié)果轉(zhuǎn)換為xml輸出,location指定*.xslt文件的位置,parse如果為false,location不被 OGNL解析,默認(rèn)為true。matchingPattern指定想要的元素模式,excludePattern指定拒絕的元素模式,支持正則表達(dá)式,默認(rèn)為接受所有元素。
httpheader:根據(jù)值棧返回自定義的HttpHeader,status指定響應(yīng)狀態(tài)(就是指response.sendError(int i)重定向到500等服務(wù)器的狀態(tài)頁)。parse如果為false,header的值不會被OGNL解析,headers,加入到header中的值,例如: <param name=”headers.a”>HelloWorld </param>??梢约佣鄠€,這些鍵-值組成HashMap。
freemaker:用freemaker模板引擎呈現(xiàn)視圖,location指定模板(*.ftl)的位置,parse如果為false,location的值不會被OGNL解析。contentType指定以何中類型解析,默認(rèn)為text/html。
chain:將action的帶著原來的狀態(tài)請求轉(zhuǎn)發(fā)到新的action,兩個action共享一個ActionContext,actionName指定轉(zhuǎn)向的新的Action的名字。method指定轉(zhuǎn)向哪個方法,namespace指定新的Action的名稱空間,不寫表示與原Action在相同的名稱空間;skipActions指定一個使用 , 連接的Action的name組成的集合,一般不建議使用這種類型的結(jié)果。
stream:直接向響應(yīng)中發(fā)送原始數(shù)據(jù),通常在用戶下載時使用,contentType指定流的類型,默認(rèn)為 text/plain,contentLength以byte計算流的長度,contentDisposition指定文件的位置,通常為 filename=”文件的位置”,input指定InputStream的名字,例如:imageStream,bufferSize指定緩沖區(qū)大小,默認(rèn)為1024字節(jié)。
plaintext:以原始文本顯示JSP或者HTML,location指定文件的位置,charSet指定字符集。


本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://oisangadgets.com/javaee

0 分享到:
和我們在線交談!