- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
现层框架Struts Tapestry JSF架构比较.doc
现层框架Struts/Tapestry/JSF架构比较
板桥里人 2005/09/12
Struts/Tapestry/JSF是目前J2EE表现层新老组合的框架技术。从诞生时间上看,Struts应该比较早,使用得非常广泛,Tapestry 3.0逐渐引起广泛的重视,正当Tapestry即将大显身手时期,SUN推出JSF标准技术,虽然JSF一开始推出尚不成熟,留出了一段空白期,但是随着JSF1.1标准推出,JSF开始正面出击,粉面隆重登场了。
其实,JSF和Tapestry也并不是那种头碰头的相同竞争性技术,两者还是各有侧重点的,不过比较细微,但是这种细微点在实现一个大工程时可能带来不同的感受和变化。
首先,我们从一个高度来抽象一下表现层框架应有的技术架构,下图可以说所有表现层框架技术都必须实现的功能架构图:
当然,我们不必废话罗嗦MVC模式,MVC模式是基准模式,现在框架技术已经不必再拼是否是MVC模式了。 在上图MVC模式基础上,一个表现层框架无外乎要实现图中的三个功能:
1.在当前页面能够显示一个组件对象的内容;而不是象纯JSP那样,需要在Jsp页面写入“调用对象方法”的Java代码。
2.当用户按下页面的提交按扭或链接后,事件发生,这时应该触发服务器端并将当前页面的参数提交给服务器。这种机制表现在Form表单提交和有参数的链接 a href
3.从一个页面视图直接跳转到另外一个页面视图,单纯的导航作用。
我们通过下表来比较这 三种框架在实现上图各个功能时技术细节,从而得出他们的异同点和偏重点。
Struts
Tapestry3.0
JSF
在View显示的组件要求
组件必须继承ActionForm
分显式调用和隐式调用组件必须继承BaseComponent
普通POJO无需继承Managed Bean
组件在View显示粒度
View页面只能显示与表单对应的ActionForm,配置中Action ActionForm 页面一般只能1:1:1关系。
可将组件嵌入页面任何一行,对使用组件数量无限制。
同Tapestry
页面分区tiles
使用Tiles标签库实现,需要另外tiles-def.xml配置文件
组件有自己的视图页面,通过调用组件即直接实现多个页面组合。强大自然的页面组合是其特点。
通过组件+标签库实现Subview,但如需重用Layout,还要结合Tiles.
页面跳转
使用标签库html:link中写明目标URL,URL名称需要对照配置文件的path命名,与组件Action耦合。
URL名称是目标的组件名称,不涉及URL和路径等操作,方便稳固。
类似Struts,也需要在配置文件中查找,与组件分离。
参数传递
使用html:link时传递参数超过一个以上处理麻烦。
直接调用组件,直接赋予参数,没有参数个数限制
参数分离传递给组件
事件触发
通过表单提交submit激活,不能细化到表单里字段。
能够给于表单每个字段贴一个事件,事件组件必须实现PageListener接口
同Tapestry,事件组件必须实习ActionListener 接口
Struts组件编程模型
Struts实现组件编程时有一些复杂:经常为一个页面中需要引入多个组件而头疼,因为Struts中无法直接引入多个组件,必须绕一些圈子:
一般分两种情况:如果同一个Action就可以对付这些组件,那么在这种情况下有两个办法:
1.将这多个组件装入一个ActionForm中,如使用MapForm等机制;
2.手工将多个组件装入request/session等scope中,然后根据其名称在jsp中获得。
这两个方法都有缺点: 第一种办法经常一个ActionForm弄得面目全非,变成一个大杂烩,违反了OO分派封装的原则;第2种办法其实又回到jsp编程;
第二种情况,如果这些组件必须有预先由不同的Action来处理,每个组件必须经过Action -- ActionForm流程,在这种情况下有两种办法:
1.使用Tiles, 不同流程输出到同一个页面的不同区域。是一种并行处理方式。
2. 对多个流程首尾相连,第一Action forward结果是第二个Action,最后输出一个Jsp,在这个jsp中就可以使用前面多个流程的多个ActionForm了,这属于串行方式。
Struts组件模型缺点
Struts组件编程必须限定在Action/ActionForm/JSP这三个框框中做文章,难度相对比较大,而Tapestry/JSF则没有太多这些技术框框限制,两者在组件编程方面更让编程者自由一些,方便一些,这也是组件型框架的优势吧。
Struts标签库
在Struts中,经常需要使用标签库来显示组件Acti
您可能关注的文档
- 09第六章 服装用织物的特征及其适用性.doc
- 09第四章服装用织物的染整1.doc
- 09第四章服装用织物的染整.doc
- 09第五章 服装用织物的服用和成衣加工性能.doc
- 20个色彩搭配案例 解析家居情感设计1.doc
- 2010年病句大课用.ppt
- 3456服装消费策略分析.ppt
- 阿皇女培训教程-(五)服饰搭配1.ppt
- 第4章文案调查法.ppt
- 《2011年服装买手经典培训教材》《买手谈判原则》(页)333.ppt
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- 现代西班牙语学生用书1目录.pdf
- 中山农村商业银行股份有限公司2021年小型微型企业贷款专项金融债券信用评级报告.pdf
- 设备采购、运输方案、设备安装调试、设备巡检、产品售后、安装类设备253页.doc VIP
- 《技规教案》课件.ppt
- 初中历史_中华民国的创建教学设计学情分析教材分析课后反思.doc
- H7车组合仪表内部参数调节方法 (1).pdf VIP
- 重汽豪沃(HOWO)T5G SAC仪表、驾驶室过度线针脚定义驾驶室电器部件讲解.pdf VIP
- T5T7NanoBCU TFT仪表服务站维修培训手册.pdf VIP
- 钢琴谱学习Parla Piu Piano 降E-降G.pdf
- T7H TFT仪表、NanoBCU系统简介.ppt VIP
文档评论(0)