此係列博文基於同一個項目已上傳至github 傳送門html
JavaWeb_(Struts2框架)Struts建立Action的三種方式 傳送門git
JavaWeb_(Struts2框架)struts.xml核心配置、動態方法調用、結果集的處理 傳送門github
JavaWeb_(Struts2框架)Log4j的配置以及解決中文亂碼 傳送門apache
JavaWeb_(Struts2框架)參數傳遞之接收參數與傳遞參數 傳送門瀏覽器
JavaWeb_(Struts2框架)Ognl小案例查詢帖子 傳送門框架
JavaWeb_(Struts2框架)Action中struts-default下result的各類轉發類型 傳送門post
JavaWeb_(Struts2框架)攔截器interceptor 傳送門spa
result是用於作輸出的組建,用於向頁面輸出一些內容,轉發重定向能夠理解爲特殊方式的輸出,每個result就是一個類code
這些類都實現了共同的接口Result,struts2預置了10種類型的result,他們都被定義在struts-default.xml種xml
SSH項目->Referenced Libraries->struts2-core-2.5.16.jar中找到struts-default.xml,struts-default.xml約束文件第192行定義了十種result轉發類型
<result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> <result-type name="dispatcher" class="org.apache.struts2.result.ServletDispatcherResult" default="true"/> <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/> <result-type name="httpheader" class="org.apache.struts2.result.HttpHeaderResult"/> <result-type name="redirect" class="org.apache.struts2.result.ServletRedirectResult"/> <result-type name="redirectAction" class="org.apache.struts2.result.ServletActionRedirectResult"/> <result-type name="stream" class="org.apache.struts2.result.StreamResult"/> <result-type name="velocity" class="org.apache.struts2.result.VelocityResult"/> <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/> <result-type name="plainText" class="org.apache.struts2.result.PlainTextResult" /> <result-type name="postback" class="org.apache.struts2.result.PostbackResult" /> </result-types>
重點:chain dispatcher redirect redirectAction stream
Result的四個經常使用轉跳類型分別爲 Dispatcher 用來轉向頁面,是Struts的默認形式 Redirect 重定向到一個URL Chain 用來處理Action鏈 RedirectAction 重定向到一個Action 還有如下幾種不太經常使用 freemaker: 處理FreeMarker模板 httpheader: 控制特殊HTTP行爲的結果類型 stream: 向瀏覽器發送InputSream對象,用來處理文件下載,還可用於返回AJAX數據 velocity : 處理Velocity模板 xsl: 處理XML/XLST模板 plaintext: 顯示原始文件內容,例如文件源代碼