tapestry 研究01

Tapestry并不是一种单纯的MVC框架,它更像MVC框架和模板技术的结合,它不仅包含了前端的MVC框架,还包含了一种视图层的模板技术,使用Tapestry完全可以与Servlet/JSP API分离,是一种非常优秀的设计。 通过使用Tapestry,开发者完全不需要使用JSP技术,用户只需要使用Tapestry提供的模板技术即可,Tapestry实现了视图逻辑和业务逻辑的彻底分离

Tapestry框架是一个位于java servlet容器和Tapestry应用程序之间的层。Tapestry不是一个独立运行的服务器;它是一个servlet的扩展,它运行于servlet容器(例如Tomcat)或包含servlet容器的应用服务器中(如Jboss,Websphere,或者WebLogic). Tapestry应用其实是由一系列页面组成,而每个页面是由可以复用的组件构成。
Tapestry是一种基于java的Web应用程序框架。Tapestry采用了组件的概念。程序员可以应用现有的组件或自定义应用程序相关的组件来构建应用程序。相对与现有的其他Web应用程序框架而言,应用Tapestry会让程序员从烦琐的,不必要的底层代码中解放出来。[1]
Tapestry使用组件库替代了标签库,没有标签库概念,从而避免了标签库和组件结合的问题。Tapestry是完全组件化的框架。Tapestry只有组件或页面两个概念,因此,链接跳转目标要么是组件,要么是页面,没有多余的path概念。组件名,也就是对象名称,组件名称和path名称合二为一。


与Web应用的关系
Tapestry仅仅是展现层的应用,或者说Tapestry仅仅是将处理好的信息展现给终端用户,如HTML,以及处理来自链接和HTML表单输入。Tapestry不知道或者不关心应用层、域逻辑层、或者信息的来源。一个Tapestry应用程序可以建立在平面文件数据库、可使用JDBC存取的关系数据库以及分布在世界上各个网络上的EJB之上。Tapestry对你的应用没有任何要求,它只是关注展现层是如何组织的。

特点
Tapestry具有很高的代码复用性,在Tapestry中,任何对象都可看作可复用的组件。JSP开发者是真正面向对象,而不是URL解析。对于对页面要求灵活度相当高的系统,Tapestry是第一选择。精确地错误报告,可以将错误定位到源程序中的行,取代了JSP中那种编译后的提示。
因此,笔者一直对Tapestry情有独钟:如果技术允许,使用Tapestry会带给整个应用更加优雅的架构,更好的开发效率。
但是,在实际开发过程中,采用Tapestry也面临着一些问题必须考虑:
— Tapestry的学习曲线相对陡峭,国内开发群体不是非常活跃,文档不是十分丰富。官方的文档太过学院派,缺乏实际的示例程序。
— Tapestry的组件逻辑比较复杂,再加上OGNL表达式和属性指定机制,因而难以添加注释。
1、Tapestry是一个全面web application框架,是使用JAVA写的。
2、Tapestry不是一个application server,Tapestry是一个使用在application server中的框架。
3、Tapestry不是一个application,Tapestry是一个用来创建web application的框架。
4、Tapestry不是JSP的一种使用方式,Tapestry和JSP只能够选择一种。
5、Tapestry不是一个脚本环境,Tapestry使用一种组件对象模式(component object model),这并不是一种简单的脚本,而是用于生成高动态性高互交性的web页面。
Tapestry基于Java Servlet API version 2.2,兼容于JDK 1.2以上版本,Tapestry通过变换多样的组件模式,将一个web application分离为一个联合组件。每一个组件都拥有其特殊的责任用于显示web页面或者响应HTML请求。


官方网址: http://tapestry.apache.org/

猜你喜欢

转载自zhaoxiaoboblogs.iteye.com/blog/2287754
今日推荐