Struts2的处理结果(二)

    ——处理结果的类型

1.Struts2內建的支持的结果类型:

  在<result>元素中的type属性,确定了结果类型。

  chain:Action链式处理的结果类型;

  dispatcher:指定使用JSP为视图资源的结果类型;

  freemarker:用于指定使用FreeMarker模板为视图资源的结果类型;

  httpheader:控制特殊HTTP行为的结果类型;

  redirect:跳转到其他URL的结果类型;

  redirectAction:跳转到其他Action的结果类型;

  stream:向浏览器返回一个InputStream;

  plainText:显示某页面的源代码的结果类型;

  ...

2.plainText

  用于显示实际视图资源的源代码。实质上是把此视图资源文件当做普通的文本文件处理,所以才会显示此视图资源的源代码。

示例:

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <package name="package_a" extends="struts-default">
        <action name="test1" class="testAction.Test1Action">
            <result type="plainText">
                <param name="location">welcome.jsp</param>
                <param name="charSet">UTF-8</param>
            </result>
        </action>
    </package>
</struts>

3.redirect

  与dispatcher类型相对,dispatcher类型是将请求转发到指定JSP页面,而redirect是重定向到新的视图资源,redirect会丢失所有的请求参数、属性和Action实例。

示例:

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <package name="package_a" extends="struts-default">
        <action name="test1" class="testAction.Test1Action">
            <!-- Action处理完请求之后重定向到此地址 -->
            <result type="redirect">welcome.jsp</result>
        </action>
    </package>
</struts>

3.redirectAction

  与redirect类型相比较,redirect类型是重定向到一个视图资源,而redirectAction是重定向到另一个Action。前一个Action的处理结果、请求参数和属性全部丢失。

示例:

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <package name="package_a" extends="struts-default">
        <action name="test1" class="testAction.Test1Action">
            <!-- 此结果类型为redirectAction类型,重定向到了一个命名空间为/b的name为package_b的Action -->
            <result type="redirectAction">
                <!-- 指定重定向的Action -->
                <param name="actionName">test2</param>
                <!-- 指定Action所在的命名空间 -->
                <param name="namespace">/b</param>
            </result>
        </action>
    </package>
    <package name="package_b" extends="struts-default" namespace="/b">
        <action name="test2" class="testAction.Test2Action">
            <result name="error">error.jsp</result>
        </action>
    </package>
</struts>

  

Struts2的处理结果(二)——处理结果的类型的更多相关文章

  1. Struts(二十):自定义类型转换器

    如何自定义类型转换器: 1)为什么需要自定义类型转化器?strtuts2不能自动完成字符串到所有的类型: 2) 如何定义类型转化器? 步骤一:创建自定义类型转化器的类,并继承org.apache.st ...

  2. MFC六大核心机制之二:运行时类型识别(RTTI)

    上一节讲的是MFC六大核心机制之一:MFC程序的初始化,本节继续讲解MFC六大核心机制之二:运行时类型识别(RTTI). typeid运算子 运行时类型识别(RTTI)即是程序执行过程中知道某个对象属 ...

  3. Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合

    Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合 引言 开篇<Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍>已经介绍了 Redis 的 ...

  4. 浅谈Kotlin(二):基本类型、基本语法、代码风格

    浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 通过上面的文章,在A ...

  5. (C/C++学习笔记) 二十三. 运行时类型识别

    二十三. 运行时类型识别 ● 定义 运行时类型识别(Run-time Type Identification, RTTI) 通过RTTI, 程序能够使用基类的指针或引用来检查(check)这些指针或引 ...

  6. HandlerMethodArgumentResolver(二):Map参数类型和固定参数类型【享学Spring MVC】

    每篇一句 黄金的导电性最好,为什么电脑主板还是要用铜? 飞机最快,为什么还有人做火车? 清华大学最好,为什么还有人去普通学校? 因为资源都是有限的,我们现实生活中必须兼顾成本与产出的平衡 前言 上文 ...

  7. 异常处理的方式二:throws+异常类型

    package com.yhqtv.demo01Exception; import java.io.File; import java.io.FileInputStream; import java. ...

  8. Struts2(十)OGNL标签二与Struts2标签

    一.Struts2标签的优势 标签库简化了用户对标签的使用 结合OGNL使用,对于集合.对象的访问功能非常强大 提供可扩展的主题.模板支持.极大简化了视图页面的编写 不依赖任何表现层技术 Struts ...

  9. struts2.1.6教程二、struts.xml配置及例程

    1.配置文件的优先级 在struts2中一些配置(比如常量)可以同时在struts-default.xml(只读性),strtus-plguin.xml(只读性),struts.xml,struts. ...

  10. [ SSH框架 ] Struts2框架学习之二

    一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Str ...

随机推荐

  1. struts_22_xwork校验器列表使用说明

    系统提供的校验器列表如下: required (必填校验器,要求field的值不能为null) requiredstring (必填字符串校验器,要求field的值不能为null,并且长度大于0,默认 ...

  2. 现在觉得IT还挺有意思

    前两天刚刚接触编程,用的是C#.开始确实枯燥,但是今天的感觉就好多了,还挺有意思.根据老师讲的课程自己编写了小程序,运行起来还不错.在这里分享下. 关于时间安排的小程序: int sj; int aa ...

  3. 手把手教你用动软.NET代码生成器实例教程

    动软实战攻略 手把手教你用动软 文档编号:20110421 版权所有 © 2004-2011 动软 在线帮助:http://help.maticsoft.com 目录   一.        产品介绍 ...

  4. C# 语音识别

    利用微软操作系统自动的语音识别功能,读取信息. 1.  在项目中添加  ""  引用 2.  引入命名空间:   using SpeechLib; 3.   读取的代码: Spee ...

  5. Android的适配器

    //====================ArrayAdapter=================================== public class List1 extends  Ac ...

  6. [置顶] 1D1D动规优化初步

    例题一: 货物运输,大意: 给出N个点的坐标与需要你送过去的钱数(第一个点不需要钱),身上带钱的数目有最大值,由初始在的1点,按顺序经历每个点(中途可以回1点,回去钱就满了),问最小走的路程是多少(最 ...

  7. python中遇到的各种问题

    一 编码问题 python的默认编码是ascii码,可以修改为utf-8 在python\Lib\site-packages\下添加一个文件sitecustomize.py 内容是 import sy ...

  8. TI CC2541增加一个可读写, 又可以Notify的特征字

    参考这个博客: http://blog.csdn.net/feilusia/article/details/48235691 值得注意是, 测试前, 在手机中先取消对原有的设备的配对.

  9. 指令重排序及Happens-before法则随笔

    指令重排序 对主存的一次访问一般花费硬件的数百次时钟周期.处理器通过缓存(caching)能够从数量级上降低内存延迟的成本这些缓存为了性能重新排列待定内存操作的顺序.也就是说,程序的读写操作不一定会按 ...

  10. 将helps.php或者functions.php直接进行了加载

    TP3系列中functions.php文件默认其实是空文件,很好找.我们可以直接封装代码. Laravel5系列中的path/vendor/laravel/framework/src/Illumina ...