表现层框架Struts/Tapestry/JSF比较 (1)
发表于:2007-06-10来源:作者:点击数:
标签:
Struts/Tapestry/JSF是目前J2EE表现层新老组合的框架技术。从诞生时间上看,Struts应该比较早,使用得非常广泛,Tapestry 3.0逐渐引起广泛的重视,正当Tapestry即将大显身手时期,SUN推出JSF标准技术,虽然JSF一开始推出尚不成熟,留出了一段空白期,但是随
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表单提交和有参数的链接
3.从一个页面视图直接跳转到另外一个页面视图,单纯的导航作用。
我们通过下表来比较这 三种框架在实现上图各个功能时技术细节,从而得出他们的异同点和偏重点。
clearcase/" target="_blank" >cccccc> | 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 接口 |
|
1
2
下一页>>
原文转自:http://www.ltesting.net
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-