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.

源码地址: https://pan.quark.cn/s/3916362e5d0a 在C#编程平台下,构建一个曲线编辑器是一项融合了图形用户界面(GUI)构建、数据管理及数学运算的应用开发任务。 接下来将系统性地介绍这个曲线编辑器开发过程中的核心知识点:1. **定制曲线面板展示数据曲线**: - 控件选用:在C#的Windows Forms或WPF框架中,有多种控件可用于曲线呈现,例如PictureBox或用户自定义的UserControl。 通过处理重绘事件,借助Graphics对象执行绘图动作,如运用DrawCurve方法。 - 数据图形化:通过线性或贝塞尔曲线连接数据点,以呈现数据演变态势。 这要求掌握直线与曲线的数学描述,例如两点间的直线公式、三次贝塞尔曲线等。 - 坐标系统与缩放比例:构建X轴和Y轴,设定坐标标记,并开发缩放功能,使用户可察看不同区间内的数据。 2. **在时间轴上配置多个关键帧数据**: - 时间轴构建:开发一个时间轴组件,显示时间单位刻度,并允许用户在特定时间点设置关键帧。 时间可表现为连续形式或离散形式,关键帧对应于时间轴上的标识。 - 关键帧维护:利用数据结构(例如List或Dictionary)保存关键帧,涵盖时间戳和关联值。 需考虑关键帧的添加、移除及调整位置功能。 3. **调整关键帧数据,通过插值方法获得曲线**: - 插值方法:依据关键帧信息,选用插值方法(如线性插值、样条插值,特别是Catmull-Rom样条)生成平滑曲线。 这涉及数学运算,确保曲线在关键帧之间无缝衔接。 - 即时反馈:在编辑关键帧时,即时刷新曲线显示,优化用户体验。 4. **曲线数据的输出**: - 文件类型:挑选适宜的文件格式存储数据,例如XML、JSON或...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值