Tapestry的介绍 - bfh365的专栏 - CSDNBlog

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:28:08
Tapestry的介绍
在Web应用框架中,MVC往往是实现Web应用前端分层的重要设计模式。由于Struts提供了优异的控制
器,这使得它成为了事实上的Web框架标准。在Web MVC中,视图层往往采用JSP和HTML技术,而模型层可
用的技术比较多(比如EJB,JDO等等)。就技术而言,如果你用Struts来开发Web应用,Struts为你提供了
优异的控制器。但就视图层的支持就有点让人不敢恭维,因为用Struts的标记库设计出来的页面,一般
的美工人员,无法美化(不要小看美化工作,用户接触一个软件时,最先接触的是界面)。
而Tapestry让我心动的地方就是:我开发的主要精力都集中在业务逻辑上,而不用考虑界面,并且
软件的界面工作可以交给美工。并且后期的软件维护比较轻松,不用在面对烦人的“界面和业务逻辑混在一起的”
JSP。
Tapestry的开发哲学是使得开发者能够以“对象、方法、属性”思考Web应用,而不是传统的“HTTP请求、
HTTP响应、会话(SESSION)、属性、参数、URL”。在使用Tapestry时只要专注于对象、对象的方法和属性。
比如:用户在使用由Tapestry开发的Web应用中,用户的行为(比如:单击URL链接、提交表单)将触发对象
属性的变化,以及事件(对对象中方法的调用)的发生。而这些工作都是由Tapestry关注,开发者只要借助
Tapestry提供的API,而不用理会底层的调用过程。这对交互性极强的Web应用十分适合。
另外开发者在使用Tapestry的过程中,不般不需要开发servlet,不用构建URL。一般情况下只要使用
Tapestry提供的现有组件,并配置相应的listener参数。通过listener参数指定的调用方法就可以访问后
端系统。
Tapestry开发的应用由Page组成,即Web页面。Page由组件组成,而组件又是由更小的组件组成。
对Tapestry而言,Page是特殊的组件,Page组件中不能再有Page组件。对于单个Page而言,各个组件的名字
都不相同,通过组件的ID能唯一标识组件。通过使用组件ID便形成了Tapestry组件对象模型。
通常Tapestry应用是由若干个页面组成,每个页面都是用Tapestry组件开发的。而且组件一般都存在
已经定义好的参数类型,通过Web页面能够提供相应的参数值。请注意,这里的参数类型同javaBean中的
参数类型有所区别。对于javaBean而言,它的参数是单向的,即开发者只能传入值,而不能传出参数。对于
Tapestry来说,方法参数是双向的,可以读出,也可以写入。
在Web应用中,处理表单数据是最为基础,重要的内容。在Tapestry应用中,当用户提交表单时,处于
表单中的组件会从HTTP查询参数中获得值,并把这些值转换为合适的类型,然后更新对象的属性。这个
过程在Tapestry中称为Rewind过程。当Tapestry将页面传给浏览器时,称之为Tapestry Render过程。
Tapestry页面上的参数是用OGNL语言来表达的。
Tapestry中存在Engine、Visit、Global这几个重要的概念。Global相当于JSP中的Application范围。
Visit是作为Engine的属性而存在的,而Engine又是存储在HttpSession中,因此Visit也是存储在
HttpSession中。
Visit和Engine都是在Tapestry的.application文件中配置的。比如:

add a description