struts 2 跳转类型

1.dispatcher 

dispatcher 为默认跳转类型。用于返回一个视图资源

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"解决)。

2.redirect 

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)以及返回的页面位置一起又一次发给webserver,容纳后由webserver产生一个新的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>

3.chain 

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

4.plaintext 

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

Xml代码:

<result name="err" type="plaintext"> 

    <param name="location">详细的位置</param> 

    <param name="charSet">字符规范(如GBK)</param> 

</result>

原文地址:http://hi.baidu.com/foreverfly8/item/4bfae9cc04abb80c0bd93a79

版权声明:本文博主原创文章,博客,未经同意不得转载。

struts2跳转类型解析的更多相关文章

  1. struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)

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

  2. struts2逻辑视图类型汇总与解释(转)

    在struts2框架中,当action处理完之后,就应该向用户返回结果信息,该任务被分为两部分:结果类型和结果本身. 结果类型提供了返回给用户信息类型的实现细节.结果类型通常在Struts2中就已预定 ...

  3. struts2的结果类型

    1.从struts-default.xml入手,得到结果类型列表以及对应的处理类: <result-types> <!-- 转发到action --> <result-t ...

  4. struts2自己定义类型转换器

    1.1.  struts2自己定义类型转换器 1)        自定类型转换类,继承DefaultTypeConverter类 package com.morris.ticket.conversio ...

  5. SpringMVC中对多部件类型解析---文件(图片)上传

    加入上传图片jar包 commons-io-2.4.jar commons-fileupload-1.3.jar 在页面form中提交enctype="multipart/form-data ...

  6. ASP.NET Web API 框架研究 Controller创建 HttpController 类型解析 选择 创建

    上一篇介绍了HttpController的一些细节,接下来说下HttpController 类型解析.选择和创建.生产HttpController实例的生产线如下图: 一.涉及的类及源码分析 涉及的类 ...

  7. struts2基础---->自定义类型转换器

    这一章,我们开始struts2中自定义类型转换器的学习. 自定义类型转换器

  8. Struts2 第六讲 -- Struts2的结果类型

    7.struts2的结果类型 l 每个 action 方法都将返回一个 String 类型的值, Struts 将根据这个值来决定响应什么结果. l 每个 Action 声明都必须包含有数量足够多的 ...

  9. JSON类型解析

    JSON类型解析 一.序列化和反序列化 程序中的对象,如python中的字典.列表.函数.类等,都是存在内存中,不方便传递或存储,所以需要将内存中的对象转化为文本或者文件格式,来满足传输和持久化(存储 ...

随机推荐

  1. python学习笔记之九:模块和包

    Python的标准安装包括一组模块,称为标准库.这里介绍模块的工作方式,学习如何使用它们. 一. 模块 1.1 用import从外部模块获取函数并为自己的程序所用: >>> from ...

  2. Applet 数字签名技术完全攻略

      这里说声对不起大家.毕竟2几年前,我想写这篇文章,但因为他才懒得一直没有写.同时也给自己的东西好.前些日子我老大让我又搞这个东西发现我曾经的资料没留,又凭着自己印象从新来过.但发现网上写的东西真的 ...

  3. 使用NSCondition实现多线程同步

    iOS中实现多线程技术有非常多方法. 这里说说使用NSCondition实现多线程同步的问题,也就是解决生产者消费者问题(如收发同步等等). 问题流程例如以下: 消费者取得锁,取产品,假设没有,则wa ...

  4. 潜水 java类加载器ClassLoader

    类加载器(class loader)用于装载 Java 类到 Java 虚拟机中.一般来说.Java 虚拟机使用 Java 类的方式例如以下:Java 源程序(.java 文件)在经过 Java 编译 ...

  5. OpenStack Dashboard

    OpenStackDashboard 为管理员和普通用户提供了一个图形化管理界面.用户能够通过该界面訪问.分配或者自己主动化分配基于云的资源.可扩展的设计使得与第三方产品和服务融合变得非常easy,比 ...

  6. acdream 1211 Reactor Cooling 【边界网络流量 + 输出流量】

    称号:acdream 1211 Reactor Cooling 分类:无汇的有上下界网络流. 题意: 给n个点.及m根pipe,每根pipe用来流躺液体的.单向的.每时每刻每根pipe流进来的物质要等 ...

  7. C++ 哈希表 (hashtable) 用于保存简单的数据,及数据查找,数据删除

    /*hashtable.h*/ #include<iostream> #include <string> #include<vector> using namesp ...

  8. poj2386Lake Counting

    题意是这种.给你一个N*M的矩形图.这个图由两个东西组成.'.'和'W', W代表这个地方有水. .代表这个地方没水. 假设一个有水的地方它的上下左右,左上,坐下.右上.右下也有水,那么 就看成它们连 ...

  9. hdu 4308 Saving Princess claire_ BFS

    为了准备算法考试刷的,想明确一点即可,全部的传送门相当于一个点,当遇到一个传送门的时候,把全部的传送门都压入队列进行搜索 贴代码: #include <iostream> #include ...

  10. javascript 的bind/apply/call性能

    javascript有两种使用频率非常高的三个内置的功能:bind/apply/call.许多技术是基于高点,这些功能实现.这三个功能被用来改变的功能运行环境.从而达到代码复用的目的. 先来所说bin ...