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可重用组件;