Tapestry是什么?



Tapestry是一个全面web application框架,是使用JAVA写的。



Tapestry不是一个application server,Tapestry是一个使用在application server中的框架。



Tapestry不是一个application,Tapestry是一个用来创建web application的框架。



Tapestry不是JSP的一种使用方式,Tapestry和JSP只能够选择一种。



Tapestry不是一个脚本环境,Tapestry使用一种组件对象模式(component object model),这并不是一种简单的脚本,而是用于生成高动态性高互交性的web页面。



Tapestry基于Java Servlet API version 2.2,兼容于JDK 1.2以上版本,Tapestry通过变换多样的组件模式,将一个web application分离为一个联合组件。每一个组件都拥有其特殊的责任用于显示web页面或者响应HTML请求。



 



 Tapestry所处的状况



1)  为什么需要web框架?



多数情况下,跨不同的应用来重用商业组件是困难的,因为由商业组件提供的功能在其它应用里不需要:它可能是唯一针对你的应用的。然而,应用服务可以在机构跨应用重用,跟跨机构一样好,因为它们提供的服务对不同类型的应用都有用。这些应用服务可能包括请求路由(对一个MVC结构),错误处理,以通用的方式产生的客户端脚本和已准备好的标签库。



2)  Tapestry所处的状况



以下是各种 web 框架比较 : (by Matt Raible)



 

struts

Spring MVC

WebWork

Tapestry

JSF

优点

广泛流行;拥有很多信息和示例;HTML标签库是一个非常好的东西。

生命周期由重写绑定,效验等确定;能够无缝隙地与各种表现层程序结合在一起,如JSP,XSL等;IC使得很容易测试。

结构简单,容易被扩展;标签库容易被自定义,并获得Velocity支持;拦截机制成熟可靠。

一旦学会,效率很高;HTML模板很合适美工;有良好的社区支持。

J2EE规范;能够快速和容易地开发;丰富的导航框架。

缺点

ActionForms非常恶心;不能够做单元测试;大量的邮件列表令人无法忍受

很少被使用;需要在JSP中写入大量代码;太灵活了,反而不能得到通用的控制。

其文档最近才出现,示例很少;客户端效验很不成熟。

文档非常概念,而缺少实践;学习曲线陡峭,示例非常少;

标签依赖JSPs;技术不够成熟;实现资源不单纯。

Matt Raible认为:



       如果是快速却低技术含量的项目,他会选择struts,因为struts比较成熟;



       如果是高技术含量的企业级项目,他会选择Tapestry,因为Tapestry可重用组件;