博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源
阅读量:5973 次
发布时间:2019-06-19

本文共 1758 字,大约阅读时间需要 5 分钟。

一、使用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,如需转载请自行联系原作者
你可能感兴趣的文章
查看mysql数据库版本方法总结
查看>>
大牛手把手教你做日历(建议你看看,你会有收获的)
查看>>
Django中的ORM
查看>>
iOS开发UI篇—Quartz2D使用(图片剪切)
查看>>
spring学习笔记(20)数据库事务并发与锁详解
查看>>
关于Simple_html_dom的小应用
查看>>
鲁肃:蚂蚁金服的三个梦想
查看>>
【springmvc+mybatis项目实战】杰信商贸-27.POI由HSSF升级为XSSF
查看>>
数学常数e的含义
查看>>
APM基础小记
查看>>
MVC
查看>>
CentOS 7 下 Oracle 11g 安装教程
查看>>
JS·基础(一)
查看>>
# 学习笔记-协议# OSI七层模型 与 TCP/IP五层协议
查看>>
Callbacks, Promises and Async/Await
查看>>
华为程序员:加6天班!加班费1.4万元!网友:我能加到它破产
查看>>
解读 JavaScript 之引擎、运行时和堆栈调用
查看>>
不得不懂系列(1)-Go语言protobuf快速上手
查看>>
版本控制系统git
查看>>
从月薪5k到5w的过来人 给大学生程序员们的一点建议
查看>>