注意
Tapestry中的Listener方法和C#中的delegate十分相象。一个特殊对象的实例中的方法被当作一个对象。调用这个listener或者listener方法有点命名的混淆。它应该被叫做delegate和delegate方法,但是已经存在的命名方式已经被广泛接受,在短时间内不容易被改变。
你只需要构造这listrner方法,而不是整个servlet。Tapestry会在正确的时候和正确的条件下调用listener的方法。你不需要考虑如何构造URL,以及通过URL传递什么数据,或者如何结合到你的应用程序中去。这些工作框架都替你做好了。
页面和组件
Tapestry把一个应用程序分成一系列的页面。每一个页面由Tapestry的组件组成。组件本身也许是由组件构成。这里没有人为的深度。
tapestry页面本身就是组件,只是有些特殊用处的组件。
所有的tapestry的组件可以成为其他组件的容器。Tapestry页面,和许多用户定义的组件一样,有一个模板,由一个特殊的html定义了一些静态的和动态的组件位置,同时有标签表明那些内嵌的组件是活跃的。组件不需要有标签。Tapestry组件参数也许是双向的,一个组件可以读取一个参数来获得一个值,或者写一个参数来设置一个值。
其他的组件。如form和form控制组件(TextField, PropertySelection, Checkbox等等)使得html中的form的实现变得容易。当这样的组件被显示的时候,他们从程序对象中读取属性值来提供默认值。当form被提交的时候,form中的组件读取http的查询参数,转换数值为合适的类型并且更新程序对象的属性。
引擎,服务和
随着时间的过去,Tapestry已经发展了它自己的方言。
Tapestry的引擎是一个一对象为中心的,它的作用和Httpsession在Servlet API的作用。 引擎的最终职责是存储应用程序的持久状态(从一个请求到下一个请求时存在的属性),这个任务已经通过把引擎存贮在httpsession的方式被完成了。本文档将主要讨论默认的实现,同时标注如何在适当的时候扩展,重写这些实现。
posted on 2005-12-19 09:39
我的java天地 阅读(694)
评论(0) 编辑 收藏