文档章节

Struts2中结果集转发

开源俱乐部
 开源俱乐部
发布于 2014/06/11 21:45
字数 859
阅读 75
收藏 0

一、结果集介绍

        Struts2的Action处理用户请求结束后,返回一个普通字符串——逻辑视图名,必须在struts.xml文件中完成逻辑视图和物理视图资源的映射,才可以让系统转到实际的视图资源。

        简单的说,结果是告诉struts2框架,当Action处理结果时,系统下一步做什么。当Action返回一个普通字符串时,系统下一步将做什么。

        Struts2中支持局部结果和全局结果。

        这些由局部结果和全局结果构成的结果,我们称为结果集

(1)局部结果

        将<result…/>作为<action…/>元素的子元素配置。一个<action…/>元素可以有多个<result…/>元素,这表示一个Action可以对应多个结果。例如:

<action name="*">
            <result name="success" type="dispatcher">
               <param name="location">/login.jsp</param>
            </result>
</action>

        其中,type属性指定结果类型为dispatcher。

        <param name="location">/login.jsp</param>为该逻辑视图指定实际的视图资源。

(2)全局结果

        将<result…/>作为<global-result…/>元素的子元素配置。例如:

<global-results>
            <result name="error">/error.jsp</result>
        </global-results>

二、Struts2支持的结果类型

(1)struts2支持的结果类型

        Struts2内建支持的结果类型有:

        (1)chain

        用来处理Action链,Action链式处理的结果类型。

        将action的带着原来的状态请求转发到新的action,两个action共享一个ActionContext,actionName指定转向的新的Action的名字,method指定转向哪个方法,namespace指定新的Action的名称空间,不写表示与原Action在相同的名称空间。

        (2)dispatcher

        请求转发,底层调用RequestDispatcher的forward() 方法,dispatcher是result的type属性默认值,通常用于转向一个JSP。

        Dispatcher类型是最常用的结果类型,也是struts框架默认的结果类型。

        (3)freemarker

        处理FreeMarker模板。

        用freemaker模板引擎呈现视图,location指定模板(*.ftl)的位置,parse如果为false,location的值不会被OGNL解析,contentType指定以何中类型解析,默认为text/html。

        (4)httpheader

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

        (5)redirect

        重定向到一个URL。

        新页面无法显示Action中的数据,因为底层调用response.sendRedirect(“”)方法,无法共享请求范围内的数据。

        (6)redirectAction

        重定向到一个Action。

        参数与chain用法相同,允许将原Action中的属性指定新名称带入新Action中,可以在Result标签中添加 <param name=”b”>${a} </param>,这表示原Action中的变量a的值被转给b,下一个Action可以在值栈中使用b来操作。

        (7)stream

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

        (8)velocity

        处理Velocity模板。

        (9)xslt

        处理XML/XLST模板。

        (10)plainText

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

(2)struts2常用的结果类型

        struts2常用的结果类型有:chain、dispatcher、redirectAction、freemarker。

三、知识扩展

(1)如何查看Struts2支持哪些结果类型?

        在\Web App Libraries\struts2-core-2.3..8.jar\struts-default.xml中可以找到定义,如下所示:

<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>


© 著作权归作者所有

共有 人打赏支持
开源俱乐部
粉丝 10
博文 39
码字总数 31422
作品 0
朝阳
架构师
私信 提问
【学习笔记6】Result配置的各种视图转发类型

<action name="helloworld" class="cn.itcast.action.HelloWorldAction"> </action> result配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有: dispatcher(默认值......

张超
2013/04/11
0
0
Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)

Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到...

CsOH913
2016/01/14
144
0
Java MVC框架性能比较 jsp、struts1、struts2、springmvc3

Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖) 个人希望本帖对大家认识一些常用的MVC框架有所帮助! 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介...

满风
2012/04/11
0
1
struts2的配置

xml绑定本地约束的方法: window-->preferences(-->MyEclipse-->Files and Editors)-->XML-->XML Catalog-->user specified Entires-->Add 中: 在出现的窗口中的Key Type 中选择URI,在locat......

gsanye
2017/06/11
0
0
(转)Java MVC框架性能比较

现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框架的项目访问速度,明显不如原来采用了str...

空云万里晴
2012/03/02
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Win10:默认的图片打开应用,打开图片时速度明显很慢的解决办法

首先,我们随便地打开一张图片。然后,点击右上角的三个小点,最后点击弹出菜单最下面的“设置”。如下图: 在“设置”中找到下面的“人物”,把它关掉就好了。 原来,默认情况下,Win 10的图...

LivingInFHL
38分钟前
2
0
js代码激发onchange事件,兼容谷歌火狐IE

var el = document.getElementsByName('role')[0]; el.value = '3'; var evt = document.createEvent("HTMLEvents"); evt.initEvent("change", false, true); el.dispatchEvent(evt);......

我退而结网
53分钟前
3
0
mysql客户端报错:libmysqlclient_16 not defined in file libmysqlclient.so.16

报错情况: 安装完mydumper之后(上一篇文章),登陆Mysql客户端报错:version libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time reference 同样:mysql的其他客...

machogyb
今天
1
0
MySQL 数据库中间件 安装部署测试全过程

1、环境准备 1.1、操作系统环境 [root@MyCat conf]# uname -aLinux MyCat 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux 1.2、关闭SELIN......

PeakFang-BOK
今天
6
0
Linux Mysql 安装

https://www.cnblogs.com/xinjing-jingxin/p/8025805.html

流氓兔-
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部