Tapestry
Tapestry |
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会让程序员从烦琐的,不必要的底层代码中解放出来。Tapestry使用组件库替代了标签库,没有标签库概念,从而避免了标签库和组件结合的问题。Tapestry是完全组件化的框架。Tapestry只有组件或页面两个概念,因此,链接跳转目标要么是组件,要么是页面,没有多余的path概念。组件名,也就是对象名称,组件名称和path名称合二为一。
评价
Tapestry仅仅是展现层的应用,或者说Tapestry仅仅是将处理好的信息展现给终端用户,如HTML,以及处理来自链接和HTML表单输入。Tapestry不知道或者不关心应用层、域逻辑层、或者信息的来源。一个Tapestry应用程序可以建立在平面文件数据库、可使用JDBC存取的关系数据库以及分布在世界上各个网络上的EJB之上。Tapestry对你的应用没有任何要求,它只是关注展现层是如何组织的。Tapestry框架填充了web应用开发中隐藏的缝隙:它提供了一个与开发人员相关的一致的框架。通常,每个开发人员自行管理他或者她开发的部分取忽略了其他的工程纪律从而使得项目承担更大的风险。假如将建造一个大楼的工作分解成建造不同楼层并安排给工人们设计和建造单独楼层,最后将它们用吊机装配起来。每一个工人都给了一个完成后建筑的粗略的草图并告诉他们那一层该做什么:“我们将把财务部门安排在这里”,或者“这儿将是公司的自助餐厅。”。你能预测到会出现什么样的灾难性的问题;每一个工人将使用不同的材料和不同的布局。电梯轴不能垂直,一些工人忘了给电线和管道预留空间,更有甚者,忘记了安装窗户!!可是,许多Web应用应用的开发仍然和上面描述的相似的混乱情况下被开发着。说明不完整;不同的开发人员以不同的方法处理类似的问题。一些开发人员不注意项目中的重要细节或者web开发中比较次要的细节。由于技术的不同,一些开发人员擅长些客户端的javascript,其他的则擅长于后台系统的交互开发-但是项目管理者常常认为这些人是完全可以互换的。最常见的是,项目的成功或失败担子在最后完全落在“全垒打团队“的肩膀上,他们不得不在剩余的时间里将所有的代码片断粘在一起。[1]