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

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

Java培訓之Struts2 result type(結果類型)

更新時間:2016年08月29日17時30分 來源:傳智播客Java培訓學院 瀏覽次數:

Struts2框架提供的結果類型

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

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


本文版權歸傳智播客Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:傳智播客Java培訓學院
首發(fā):http://metathetuscanyresort.com/javaee

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