此系列博文基于同一个项目已上传至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: 显示原始文件内容,例如文件源代码