文档章节

Struts2中结果集转发

开源俱乐部
 开源俱乐部
发布于 2014/06/11 21:45
字数 859
阅读 77
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
5
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
3
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部