一、使用IncludeAction类包含Web资源

    虽然在JSP页面中可以使用<jsp:include>标签包含另一个Web资源,但Struts框架提倡在包含Web资源时应先经过Struts控制器处理后,再由Struts控制器负责包含Web资源。org.apache.struts.actions.IncludeAction类提供了包含其他Web资源的功能。使用IncludeAction类要在struts-config.xml中配置<action>元素。配置IncludeAction类的代码如下:

<action path="/include" type="org.apache.struts.actions.IncludeAction"
            input="/firstValidator.jsp" validate="false"
            name="firstValidatorForm" parameter="/firstValidator.jsp" />
在配置上面代码时应注意两点:
1. firstValidator.jsp页面使用了firstValidatorForm进行数据验证,所有应将<action>元素的validate属性设为“false”。否则在运行include动作时就会进行验证。在这时firstValidatorForm中的所有属性都没有被赋值。所以每个属性都无法通过验证。读者可以将validate属性设为“true”,看看会发生什么情况。
    2. IncludeAction类的功能和效果与<jsp:include>标签完全一样。这就意味着在IncludeAction包含的其他Web资源中无法改变响应信息头。这样就无法改变Content-Type字段的值。因此,按着上面的设置来运行程序,所有的中文信息会显示乱码。解决的方法有很多,如可以自己实现一个IncludeAction类的子类,在子类的execute方法中设置Content-Type的值。或都更简单的方法是在过滤器(EncodingFilter)中加入如下的代码:    
response.setCharacterEncoding("GBK");

在IE中输入http://localhost:8080/samples/include.do可访问include动作。
   虽然在JSP页面中可以使用<jsp:forward>标签把请求转发给另一个Web资源,但Struts框架提倡在转发Web资源时应先经过Struts控制器处理后,再由Struts控制器转发Web资源。org.apache.struts.actions.ForwardAction类提供了转发其他Web资源的功能。使用ForwardAction类要在struts-config.xml文件中配置<action>元素。下面的代码演示了如何在<action>元素中使用ForwardAction类来包含其他的Web资源:
<action path="/forward" type="org.apache.struts.actions.ForwardAction"
            input="/firstValidator.jsp" validate="false"
            name="firstValidatorForm" parameter="/firstValidator.jsp" />
由于经过转发的Web资源可以改变Content-Type字段的值,因此,使用ForwardAction类进行转发时,无需再另外改变Content-Type字段的值(因为在firstValidator.jsp页面中已经设置了Content-Type的值)。
    在IE中输入http://localhost:8080/samples/forward.do可访问forward动作。
本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214851,如需转载请自行联系原作者

Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源相关推荐

  1. STM32 基础系列教程 17 – CRC

    前言 学习stm32 循环冗余校验(CRC)计算单元接口使用,学会stm32f103 CRC应用与编程,关于CRC的基础知识请各位自行百度,STM32有些芯片的CRC多项式可自由设定,有些则是固定值0 ...

  2. Struts1.x系列教程(16):使用LocaleAction类实现国际化的Web程序

     我们曾经在<Struts1.x系列教程(13):国际化>一文中讲过如何通过编程的方式实现多语言的Web页面.在本文中,我们会介绍另外一种实现多语言Web页面的方法.这种方式与<St ...

  3. Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序

    本文为原创,如需转载,请注明作者和出处,谢谢! 本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Strut ...

  4. Struts1.x系列教程:用MyEclipse开发第一个Struts程序

    本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Struts 2.x的相同点和不同点. 在这篇文章中将以一 ...

  5. 【视频教程】帝国CMS制作网站系列教程17—帝国CMS模板的策划

    作为一个程序员,搭建一个自己的博客网站是件非常容易的事情,但是作为很多非程序员非计算机专业的学习者来讲,可能就需要花点时间进行学习,而如果你想通过自学来学习怎么制作一个属于自己的网站的话,那这套帝国C ...

  6. android app初始化sdk,Android SDK使用系列教程——2.SDK初始化和常用类介绍

    本帖最后由 碎羽 于 2015-6-18 11:36 编辑 上次讲到SDK的下载和导入,这次来讲讲SDK的初始化和常用类的介绍. 一.初始化SDK 初始化SDK,首先要获得对应设备的AppID.App ...

  7. Android系列教程之七:EditText使用详解-包含很多教程上看不到的功能演示

    写道 标题有点大,说是详解,其实就是对EditText的一些常用功能的介绍,包括密码框,电话框,空白提示文字等等的讲解,尽量的介绍详细一点,也就是所谓的详解了..呵呵 广告一下我的应用"我团 ...

  8. Struts1.x系列教程(4):标签库概述与安装

    Struts的整个视图层(就是MVC模式中的View层)是由Struts的定制标签(或者称为定制动作)和客户端代码(Javascript.HTML等)实现的.这些Struts标签被写在JSP页面中,用 ...

  9. Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit

    虽然LookupDispatchAction类可以很好地处理拥有多个提交按钮的Form,但是必须要和属性文件相关联,而且还得在getKeyMethodMap方法中进行key和Action方法的映射,使 ...

最新文章

  1. Java项目:酒店管理系统(java+SSM+jsp+mysql+maven)
  2. 怎样将项目上传到github上
  3. php mysql odbc_PHP Database ODBC
  4. Sublime Text3 3143 注册码,亲测可用!
  5. linux环境部署ltmj,Linux系统安装与简单配置 图文.docx
  6. 企业实战(Jenkins+GitLab+SonarQube)_10_Jenkins通过Depoly插件热部署Java程序
  7. pcDuino上跑 MQ2 Shield
  8. 项目优化到一半还是崩了,新同事换了一套调优方案,全体颤抖。。。
  9. 第1章 游戏之乐——光影切割问题
  10. ESC键居然有这样的妙用!!!你知道吗?
  11. 50EX全球化战略布局加快,日韩版本将上线
  12. nodebb 搜索不到插件问题排查
  13. S2SH水费管理系统-JAVA【毕业设计、快速开发、源码、开题报告】
  14. Photoshop脚本 合并所有图层
  15. Linux下命令补全工具bash-completion
  16. java基于springboot+vue的旧衣服捐赠系统 毕业设计nodejs技术
  17. Keras-yolov3计算验证集acc一直为0
  18. sublime加动画css3,CSS3 Sublime 代码编辑器模拟
  19. FrozenUI 实战项目《可可DJ音乐网》
  20. 金山网络-度过生死线

热门文章

  1. Qt网络应用----socket通信例子
  2. 一个资源管理系统的设计--基于cgroup机制
  3. Android--多选自动搜索提示
  4. [导入][转]精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
  5. 最近安装了Netscape Navigator 9.0英文版,真好用!
  6. [AMPPZ2014]Petrol
  7. 详解CSS的Flex布局
  8. UTC时间与当地时间的转换关系?
  9. 通过curl访问openstack各服务
  10. Spring Bean配置默认为单实例 pring Bean生命周期