【Struts】strust.xml中全部類型詳解

在默認時, <result>標籤的type屬性值是「dispatcher」(實際上就是轉發,forward)。開發人員能夠根據本身的須要指定不一樣的類型,如redirect、stream等。以下面代碼所示: <result name="save" type="redirect"> /result.jsp </result>
這時result-type能夠在struts2-core-2.0.11.1.jar包或struts2源代碼中的 struts-default.xml文件中找到,在這個文件中找到 <result-types>標籤,全部的result-type都在裏面定義了。

已配置結果類型名

類 名

描 述

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
返回普通文本類容

 

dispatcher:用於頁面轉發,頁面跳轉過程一直是同一個線程,Action中的數據一直保存在。
redirect:可用於返回一個頁面、一個action、連接到一個網址。
   缺點:redirect把一個http返回碼(SUCCESS)以及返回的頁面位置一塊兒從新發給web服務器,容納後由web服務器產生一個新的HTTP請求,就會產生一個新的線程,保存在原來Action執行的線程中的數據就沒法訪問。 因此,result須要包含Action的數據,那麼redirect不是一個可行的辦法。由於新的HTTP請求時在Servlet容器的新的線程中處理的,ActionContext中的全部狀態都不會存在。
chain:功能與redirect的action轉發相似,不過與redirectaction轉發功能不一樣的是它能夠將Action中的數據一直保存在同一個HTTP請求中。
相關文章
相關標籤/搜索