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

    this.listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void o ...

  2. ArcGIS Engine中加载数据

    ArcGIS Engine中加载数据 http://blog.csdn.net/gisstar/article/details/4206822   分类: AE开发积累2009-05-21 16:49 ...

  3. Uploadify在MVC中使用方法案例(上传单张图片)

    在View视图中: <link href="/Scripts/uploadify-v3.2.1/uploadify.css" rel="stylesheet&quo ...

  4. python pdb

    pdb 以参数-m pdb启动后,pdb定位到下一步要执行的代码-> s = '0'.输入命令l来查看代码: 输入命令n可以单步执行代码: 任何时候都可以输入命令p 变量名来查看变量: (Pdb ...

  5. 卸载PythonToolKit的方法

    先借用官网的内容介绍一下: PythonToolkit (PTK) is an interactive environment for python. It was originally design ...

  6. iOS 学习笔记 三 (2015.03.05)

    服务和特征都是用UUID来唯一标识的,UUID的概念如果不清楚请自行google,国际蓝牙组织为一些很典型的设备(比如测量心跳和血压的设备)规定了标准的service UUID(特征的UUID比较多, ...

  7. linux中Iptables限制同一IP连接数防CC/DDOS攻击方法

    1.限制与80端口连接的IP最大连接数为10,可自定义修改.  代码如下 复制代码 iptables -I INPUT -p tcp --dport 80 -m connlimit --connlim ...

  8. struts2多线程数据乱窜问题

    转自:http://love398146779.iteye.com/blog/1781680 1.struts2为每个线程提供一个action实例,多线程访问时不会出现问题.当使用spring管理st ...

  9. 用canvas画时钟

    效果图在博客首页上. html: <canvas id="canvas" >Your browser does not support canvas</canva ...

  10. YTU 2986: 删除区间内的元素(线性表)

    2986: 删除区间内的元素(线性表) 时间限制: 1 Sec  内存限制: 2 MB 提交: 8  解决: 3 题目描述 若一个线性表L采用顺序存储结构,其中元素都为整数.设计一个算法,删除元素值在 ...