struts 中 action 的重用

本文探讨了在 Struts 1.1 框架中重用 Action 的多种方法,包括使用 Tiles 和 bean:include 标签,并简要提及了修改 Struts 源代码的可能性。
 

前2天我在论坛上提了一个问题 在struts(1.1)中如何重用Action ,这个帖子我自认为把问题已经说的很清楚.同时也说了几种解决方法,但是我需要是最优,最完美的解决方法,但是没想到帖子一发出去,效果甚微,回复人很少,.一开始我以为是我发的帖子的问题太基础.别人不屑回答,但是我把这个问题在本论坛搜索了一下,也有人问同样的问题,也一直没有人回复.我再把这个问题在百度和google搜索了一下,那提问的人就更多了,但是好象也一直没有得到解决.

在struts(1.1)中如何重用Action 这个问题说简单一点,就是如何包含一个Action 的执行结果.

我通过自己查询资料,pikachu的帮助,目前找到以下三种:

第一,使用tiles (但是不知道原理):
使用tiles虽然能成功,但是它的机制我一直没有弄清楚,因为它的配置比较无聊.
因为使用tiles想用<tiles:insert page="/test.do">成功的话,必须在struts-config.xml中配置
struts-config.xml里面配置TilesPlugin即:

代码
  1. <plug-in className="org.apache.struts.tiles.TilesPlugin" >     
  2.   <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />     
  3.   <set-property property="definitions-parser-validate" value="true" />     
  4. </plug-in>   

 

在tiles-defs.xml这个配置文件只需要加入基本的标记(为空的话启动会报错)即:

代码
  1. <tiles-definitions>     
  2.   <definition name="任意值" />     
  3. </tiles-definitions>    

 

只需要以上配置,你就可以使用<tiles:insert /> 包含任意的Action,至于为什么要这样配置,我现在也不是很清楚.但是org.apache.struts.tiles.TilesPlugin配置是必须的,配置org.apache.struts.tiles.TilesPlugin的时候是必须加入

代码
  1. <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />  

 

第二,使用<bean:include>和<bean:write>标记
在孙卫琴的精通struts是这样介绍bean:include>和<bean:write>标记的:
<bean:include>标签和标准的JSP标签<jsp:include>很相似,都可以用来包含其他web资源的内容,区别在于<bean:include>标签把其他web资源的内容存放在一个变量中,而不是直接显示在页面上.<bean:include>标签的id属性定义一个代表其他web资源的变量

<bean:write>标签用于在网页上输出某个Bean或它的属性的内容.其中它有一个filter属性,默认值为true.如果filter属性为true,将把输出内容中的特殊HTML符合作为普通字符串来显示;如果filter属性为false,则不会把输出内容中的热书HTML符号转化为普通字符串.

所以当我们想包含一个Action执行完以后返回的ActionForward包含的页面时候,只需如写写法:

代码
  1. <bean:include id="test" page-"/test.do">   
  2. <bean:write name="test" filter="false" >  

 

第三,其他方式

我在网上搜索到一个blog的文章,他的意思改写struts的源代码,对于这种方法我没有试过,如果大家有兴趣可以去看看http://www.blogjava.net/rain1102/articles/96158.html

还有就是通过查询tiles相关资料,发现tiles有controllerUrl和ontrollerClass 属性:
controllerUrl 在页被插入前,控制器(controller)的直接URI 。 这个URI通常用来指示一个struct action. 这个控制器(action) 是用来为inserted tile 准备数据的。只能有 一个controllerUrl 或 controllerClass
controllerClass 页面(page)被插入前,直接调用的一种控制(control)类的类型。这个类是用来为inserted tile 准备数据的。只能有 一个controllerUrl 或 controllerClass 。这个类实现或扩展下列类之一:
org.apache.struts.tiles.Controller,
org.apache.struts.tiles.ControllerSupport,
或org.apache.struts.action.Action
但是种方式我也测试过,没有成功.

我基本上已经说完了,这3天一直在想办法解决这个问题,目前找到的就是第一种和第二种,我希望大家能够给出最好的解决方法.
最后非常感谢pikachu给我发的DEMO.

数据集介绍:垃圾分类检测数据集 一、基础信息 数据集名称:垃圾分类检测数据集 图片数量: 训练集:2,817张图片 验证集:621张图片 测试集:317张图片 总计:3,755张图片 分类类别: - 金属:常见的金属垃圾材料。 - 纸板:纸板类垃圾,如包装盒等。 - 塑料:塑料类垃圾,如瓶子、容器等。 标注格式: YOLO格式,包含边界框和类别标签,适用于目标检测任务。 数据格式:图片来源于实际场景,格式为常见图像格式(如JPEG/PNG)。 二、适用场景 智能垃圾回收系统开发: 数据集支持目标检测任务,帮助构建能够自动识别和分类垃圾材料的AI模型,用于自动化废物分类和回收系统。 环境监测与废物管理: 集成至监控系统或机器人中,实时检测垃圾并分类,提升废物处理效率和环保水平。 学术研究与教育: 支持计算机视觉与环保领域的交叉研究,用于教学、实验和论文发表。 三、数据集优势 类别覆盖全面: 包含三种常见垃圾材料类别,覆盖日常生活中主要的可回收物类型,具有实际应用价值。 标注精准可靠: 采用YOLO标注格式,边界框定位精确,类别标签准确,便于模型直接训练和使用。 数据量适中合理: 训练集、验证集和测试集分布均衡,提供足够样本用于模型学习和评估。 任务适配性强: 标注兼容主流深度学习框架(如YOLO等),可直接用于目标检测任务,支持垃圾检测相关应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值