文档章节

struts2 跳转类型 result type=chain、dispatcher、redirect

完美世界
 完美世界
发布于 2014/06/04 23:23
字数 551
阅读 54
收藏 0
点赞 0
评论 0

dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp) 

Xml代码 :

<result name=”success”>/main.jsp</result> 
<result name=”success”>/main.jsp</result>

以上写法使用了两个默认,其完整的写法为: 

<result name=”success” type=”dispatcher”> 
        <param name=”location”>/maini.jsp</param> 
</result>

用于页面转发,页面跳转过程一直是同一个线程,Action中的数据一直保存在。location只能是页面,不能是另一个action(可用type=”chain”解决)。

redirect 类型用于重定向到一个页面,另一个action或一个网址。 

Xml代码:

<result name=”success” type=”redirect”>aaa.jsp</result> 
<result name=”success” type=”redirect”>bbb.action</result> 
<result name=”success” type=”redirect”>www.baidu.com</result>

缺点:redirect把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问。

所以,result需要包含Action的数据,那么redirect不是一个可行的办法。因为新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的所有状态都不会存在。

处理方法:

(方法一): 

<result name=”topic” type=”redirect”>/topicAction!findTopics.do?topicId=${topicId}</result>

(方法二): 

<result name=”topic” type=”redirect-action”> 
    <param name=”actionName”>findTopics</param> 
    <param name=”topicId”>${topicId}</param> 
</result>

redirect-action 结果类型使用ActionMapperFactory提供的ActionMapper来重定向请求到另外一个action 

Xml代码:

<result name=”err” type=”redirect-action”> 
    <param name=”actionName”>重定向的Action名</param> 
     <param name=”namespace”>重定向Action所在的名字空间</param> 
</result>

redirect和redirect-action两种结果类型在使用上其实并没有什么区别,只是写法不同而已。

chain 用于把相关的几个action连接起来,共同完成一个功能。 

Xml代码:

<action name=”step1″ class=”test.Step1Action”> 
     <result name=”success” type=”chain”>step2.action</result> 
</action> 
<action name=”step2″ class=”test.Step2Action”> 
<result name=”success”>finish.jsp</result> 
</action>

处于chain中的action属于同一个http请求,共享一个ActionContext

plaintextj 结果类型用于直接在页面上显示源代码

Xml代码:

<result name=”err” type=”plaintext”> 
    <param name=”location”>具体的位置</param> 
    <param name=”charSet”>字符规范(如GBK)</param> 
</result>



© 著作权归作者所有

共有 人打赏支持
完美世界
粉丝 10
博文 149
码字总数 134011
作品 0
西城
高级程序员
struts2 跳转类型 result type=chain、dispatcher、redirect

转自: dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp) Xml代码 : <result name="success">/main.jsp</result> <result name="success">/main.jsp</result> 以上写法使用了两个默......

巴顿 ⋅ 2013/12/10 ⋅ 0

Struts2 注解中跳转 action

在xml中跳转action我想大家都是会的,那么注解中跳转其实也很类似,废话不多说,直接上代码: @Results({ @Result(name = "toEditFollow", type = "redirect", location = "follow!toEditFo...

heiyexue ⋅ 2014/06/22 ⋅ 0

Struts2 result type(结果类型)

在struts2框架中,当action处理完之后,就应该向用户返回结果信息,该任务被分为两部分:结果类型和结果本身。 Struts2框架提供的结果类型 已配置结果类型名 类 名 描 述 dispatcher org.apa...

不忘初心_xu ⋅ 2016/01/28 ⋅ 0

SSH框架之struts2专题2:Struts2配置文件

1 Struts2相关的六个配置文件 1.1 struts-default.xml文件(只读,不可修改) Struts2的默认核心配置文件,其中主要定义了11种返回类型、35种拦截器,以及拦截器栈。其中较重要的默认拦截器栈...

极客微信条 ⋅ 01/05 ⋅ 0

Struts2基本配置

配置中央控制器 web.xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <......

执手相看语凝噎 ⋅ 2014/07/01 ⋅ 0

尚硅谷公开课--struts2--6--result

result ,即是struts.xml文件中action的一个子节点,每个action可以有多个result子节点,代表了一种action中execute方法的一种可能的返回值 共两个属性: name,type type表示结果的响应类型,...

小代码2016 ⋅ 2015/08/21 ⋅ 0

struts2 入门精讲(2)

struts.xml配置 1.constant 对象池 struts.objectFactory这个属性用于说明Struts2的 对象池创建工厂,Struts2也有自己的对象池,就像Spring那样,在配置文件中你可以引用对象池中的对象,你可...

南寒之星 ⋅ 2015/11/28 ⋅ 0

Struts2中的result组件

常用的几种Result组件 1)JSP响应 dispatcher :采用请求转发方式调用JSP组件响应。 redirect:采用请求重定向方式调用JSP组件响应。(在重定向后,原request和action都被销毁掉,因此在JSP...

木偶 ⋅ 2013/01/29 ⋅ 0

Struts2中的Action链式处理

Struts2 (2.2.1)的Action中标签<result>可以通过多种方式跳转到另一个Action: <result type="redirect">ActionName</result> <result type="redirectAction">ActionName</result> <result ......

Storm.X ⋅ 2010/12/07 ⋅ 2

Struts2第五天

第八节: result配置 1. type默认是dispatcher内部转发 2. type为redirect重定向 3. type为chain链条 4. type为redirectAction重定向到action 上面4个常用,一定要掌握 其他 freemarker freem...

无头骑士 ⋅ 2014/12/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 31分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 34分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 40分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 41分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 51分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部