Struts2 中result type属性说明

原创 2016年08月29日 22:47:30

Struts2框架提供了大量的默认的结果类型,这些类型定义在struts2-core-版本号.jar文件下的Struts-default.xml文件中。首先看一下在struts-default.xml中对于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" />
</result-types>
    chain:用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息.
    dispatcher:用来转向页面,通常处理JSP.
    freemaker:处理FreeMarker模板.
    httpheader:控制特殊HTTP行为的结果类型.
    redirect:重定向到一个URL,被跳转的页面中丢失传递的信息,如request.
    redirectAction:重定向到一个Action,跳转的页面中丢失传递的信息.
    stream:向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据.
    velocity:处理Velocity模板.
    xslt:处理XML/XLST模板.

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

        Result的首要职责,是封装Action层到View层的跳转逻辑。之前我们已经反复提到,Struts2的Action是一个与Web容器无关的POJO。所以,在Action执行完毕之后,框架需要把代码的执行权重新交还给Web容器,并转向到相应的页面或者其他类型的View层。而这个跳转逻辑,就由Result来完成。这样,好处也是显而易见的,对Action屏蔽任何Web容器的相关信息,使得每个层次更加清晰。 
       View层的显示类型非常多,有最常见的JSP、当下非常流行的Freemarker/Velocity模板、Redirect到一个新的地址、文本流、图片流、甚至是JSON对象等等。所以Result层的独立存在,就能够对这些显示类型进行区分,并封装合理的跳转逻辑。 

重点说一下redirect和redirectAction的区别:

       (1)使用redirect需要后缀名,使用redirect-action可以不需要后缀名.

       (2)type="redirect"的值可以转到其它命名空间下的action,而redirect-action只能转到同一命名空下的action,因此它可以省略.do的后缀直接写action的名称.

参考

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Struts2 配置文件result的name属性和type属性

Struts2 配置文件result的name属性和type属性:Name属性SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值;NONE:表示Acti...
  • Holy0913
  • Holy0913
  • 2010年11月20日 19:05
  • 15575

Struts2 - result标签的name属性和type属性

1.result的name属性 例如:/pages/success.jsp Struts 2带有一个可选的动作接口(com.opensymphony.xwork2.Action)。通过实现这个...
  • zkflame
  • zkflame
  • 2016年03月29日 16:24
  • 6919

struts2中result的type属性详解

(1)type="dispatcher" 为默认,用于jsp页面跳转  /index.jsp   完整的写法为:          /index.jsp     (2)type="redir...

Struts2配置RESULT中TYPE的参数说明

chain           用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息。           com.opensymphony.xwo...

struts2.xml 中result type属性说明

chain        用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息。        com.opensymphony.xwork2.ActionChai...

Struts2中的action中result中的type有哪些类型

Struts2框架默认配置中已经提供了很多的result类型,可以打开struts-default.xml配置文件来查看。   chain:Action链式处理的结果类型,也就是将结果转发到...

struts2的result-type详解

在struts2-core.jar/struts-default.xml中,我们可以找到关于result-type的一些配置信息,从中可以看出struts2组件默认为我们提供了这 些result...

关于struts2.5.2 初步学习 遇到的几点改变以及使用通配符调用无效的问题

今天学习Struts2  版本号是2.5.2  。该版本相比较之前的2.3目前学习遇到如下三个问题。 1、需要引入jar包数量的变化 在之前的版本中需要单独引入xwork-core-2.x.x.j...

struts2中result的type跳转类型

1 配置result    result的目的就是告诉Struts2框架,在执行完一个Action后,需要系统做什么?是把一个视图资源呈现给用户还是执行另外一个Action,result配置起...

自定义结果类型(result的type属性)

需求:自定义一个结果类型,用于自动生成验证码,生成验证需要借助一个第三方工具validatecode.jar,当然也可以自己实现分析:要想实现一个自定义的结果类型,那么,我们可以参考struts2官方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2 中result type属性说明
举报原因:
原因补充:

(最多只允许输入30个字)