【SSH】Struts2的Result类型

Struts2提供了对不同种类返回结果的支持,常见的有JSP,FreeMarker,Velocity等。 

Struts2支持的不同类型的返回结果为:Chain Result、chain、dispatcher、freemaker、httpheader、redirect、redirectAction、stream、velocity、xslt、plainText、redirect-action

Chain Result 

用来处理Action链 

(1)主要用于把相关的几个action连接起来,共同完成一个功能。

(2)多个action间数据的传递

主要有两种方式:

1、由于处于chain中的action属于同一个http请求,共享一个ActionContext,故可以在上下文中获取,在页面上可以直接使用。手动获取的方法如下:

HttpServletRequest request = ServletActionContext.getRequest();
String s=(String)request.getAttribute("propName");

2、实现ModelDriven接口

Dispatcher Result 

    用来转向页面分发请求,通常处理JSP 

FreeMarker Result 

    处理FreeMarker模板 

HttpHeader Result 

    用来控制特殊的Http行为 

Redirect Result 

    重定向到一个URL 

    sendRedirect是重定向,是重新产生一个HTTP请求到服务器,故重定向后其原来所在的action上下文就不可用了。

Redirect Action Result 

    重定向到一个Action 

Stream Result 

    向浏览器发送InputSream对象,通常用来处理文件下载 

Velocity Result 

    处理Velocity模板 

XLS Result 

    处理XML/XLST模板 

PlainText Result 

    显示原始文件内容,例如文件源代码 

S2PLUGINS:Tiles Result 

    结合Tile使用 

JSON:Json Result 

    返回Json结果

在默认时,<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都在里面定义了。代码如下:

<result-types>
    <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
    <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
    <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
    <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
    <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
    <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
    <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
    <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
    <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
    <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
    <!-- Deprecated name form scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 -->
    <result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
    <result-type name="plaintext" class="org.apache.struts2.dispatcher.PlainTextResult" />
< /result-types>

chain

用来处理Action链

com.opensymphony.xwork2.ActionChainResult 

dispatcher

用来转向页面,通常处理JSP

org.apache.struts2.dispatcher.ServletDispatcherResult 

freemaker

处理FreeMarker模板

org.apache.struts2.views.freemarker.FreemarkerResult 

httpheader

控制特殊HTTP行为的结果类型

org.apache.struts2.dispatcher.HttpHeaderResult 

redirect   

重定向到一个URL

org.apache.struts2.dispatcher.ServletRedirectResult 

redirectAction   

重定向到一个Action

org.apache.struts2.dispatcher.ServletActionRedirectResult 

stream

向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据   

org.apache.struts2.dispatcher.StreamResult 

velocity

处理Velocity模板

org.apache.struts2.dispatcher.VelocityResult 

xslt

处理XML/XLST模板   

org.apache.struts2.views.xslt.XSLTResult 

plainText

显示原始文件内容,例如文件源代码   

org.apache.struts2.dispatcher.PlainTextResult 

redirect-action

重定向到一个Action

org.apache.struts2.dispatcher.ServletActionRedirectResult 


赞(52) 打赏
未经允许不得转载:优客志 » JAVA开发
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏