tapestry用户手册(20211002230637)

上传人:小****克 文档编号:201410670 上传时间:2021-10-10 格式:PDF 页数:50 大小:583.86KB
返回 下载 相关 举报
tapestry用户手册(20211002230637)_第1页
第1页 / 共50页
tapestry用户手册(20211002230637)_第2页
第2页 / 共50页
tapestry用户手册(20211002230637)_第3页
第3页 / 共50页
tapestry用户手册(20211002230637)_第4页
第4页 / 共50页
tapestry用户手册(20211002230637)_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《tapestry用户手册(20211002230637)》由会员分享,可在线阅读,更多相关《tapestry用户手册(20211002230637)(50页珍藏版)》请在金锄头文库上搜索。

1、Tapestry 用户手册内容目录1.简介.51.1.Tapestry概述. 61.2.页面和组件 .71.3.引擎,服务和朋友 . 71.4.对象图形导航语言 . 81.5.Tapestry 的过去和未来 . 82.页面和组件模板 . 92.1.模板定位 .92.2.模板内容 .102.3.模板中的组件 . 102.4.模板指示 .153.组件绑定 . 184.监听方法 . 204.1.返回类型 .204.2.监听方法参数 . 214.3.调用监听方法 . 225.决定页面( Page )类. 236.输入验证 . 246.1.FieldLabel 组件.246.2.域验证.256.3.扩展

2、 ValidationDelegate. 266.4.ValidField 组件. 277.创建 Tapestry组件( components ). 287.1.组件的说明文件 . 297.2.组件编码 .307.3.组件参数 .317.4.组件库.358.属性注入 . 378.1.元注入.388.2.对象注入 .388.3.页面注入 .398.4.脚本注入 .398.5.状态注入 .408.6.状态标记注入 . 409.本地化 . 409.1.组件消息目录 . 419.2.丢失键值 .429.3.命名空间消息目录 . 429.4.模板文本的本地化 . 439.5.本地化的模板 . 439.6

3、.模板编码 .439.7.使用 message: 绑定前缀 .439.8.资产(Assets)的本地化 .449.9.格式化消息 .449.10.本地化的改变 . 449.11.引擎本地化 vs.页面本地化 .459.12.限定所接受的本地化 . 4510.管理服务器端状态 . 4510.1.理解 servlet状态.4610.2.持久化页面属性 . 4710.3.应用程序状态对象 . 5010.4.无状态的应用程序 . 5211.HiveMind 集成.5211.1.注入服务 .5311.2.载入注册( Bootstrapping the Registry ).5412.友好的 URL. 5

4、512.1.理解 TapestryURL. 5612.2.使用友好的 URL. 5613.页面事件( Page Events ).6114.配置 Tapestry. 6214.1.Web配置描述符 .6214.2.应用程序性质源 . 6414.3.全局性质源 .6514.4.配置性质 .6514.5.应用程序扩展 . 6815.Tapestry对象的性质 . 6916.从 Tapestry3.0改善.7216.1.定义 servlet路径.7216.2.定义引擎服务 . 7316.3.组件参数 .7316.4.指定性质 .7616.5.管理 bean.7616.6.依赖改变 .7716.7.其

5、它代码改变 . 7716.8.组件的改变 .7717.Tapestry说明书 DTD. 7717.1.3.0和 4.0版本之间的变化 .7817.2.性质注入 .7917.3.Boolean类型值.7917.4.元素.8017.5. 元素.8017.6. 元素.8117.7.元素. 8217.8. 元素.8217.9. 元素. 8317.10. 元素.8417.11.元素. 8417.12.元素.8517.13. 元素. 8517.14.元素.8517.15.元素.8617.16.元素.8617.17.元素. 8617.18. 元素.8717.19. 元素.8717.20. 元素. 8717.

6、21. 元素.8817.22.元素.8917.23. 元素.8917.24. 元素.9018.脚本模板说明书的DTD. 9018.1.DOCTYPE.9118.2.元素.9118.3.元素.9118.4.元素.9118.5.元素.9218.6.元素.9218.7.元素. 9218.8.元素. 9318.9.元素.9318.10.元素.9318.11. 元素.9418.12.元素.941. 简介Tapestry 是一个用 java 编写的基于组建的网络应用框架。 Tapestry 不仅仅是一个简单的模板系统, Tapestry 建立于 Java Servlet API系统之上 ,目的是为了搭建一

7、个平台来创建一个动态,互动的网站系统。与别的模板语言不同的是, Tapestry 是一个真正的框架,这个框架可以从简单,可复用的组件上构建复杂的应用程序。 Tapestry 可以减轻在创建网络应用服务程序中比较容易出错的工作,而是把这些风险转给框架本身,接管一些常用普通的的工作,比如收发外界来的请求,构建和翻译包含编码信息的URL,处理本地化和国际化的问题,等等。Tapestry 的理念是“对象 ,方法和属性”,意思是与以往开发人员需要关注 Servlet API , 比如请求 ,回应 ,会话,属性,参数,URL 等等不同 , Tapestry 中开发人员需要关注的是对象 (包括 Tapest

8、ry 页面和组件 ,也包括应用程序的域对象),以及那 些 对 象的 方 法 和 这 些 对 象 的 JavaBeans 的 属 性 。它 的 意 思还 包 括 ,在 Tapestry 应用程序当中 ,用户的行为 (点击连接和提交表单 )导致对象属性的变化 ,同时也导致用户相关的方法的执行(包含的业务逻辑 )。 Tapestry 关注连接用户行为和对象的必要性。这些都可能会使开发人员的习性发生一些变化,你将不会在Tapestry 中写servlets, 而是写监听方法。你也不用拼接URLs 给 servlets, 而是用已经存在的组件(例如 DireclLink) 和配置这个监听器的参数而执行你

9、的监听方法。那么监听器方法所做的事情是什么呢?它和后台系统交互 (通常是在 EJBs 当中的无状态会话 )或者是其他的簿记 ,这个簿记关联着请求并且选择一个新的页面来回应用户.这些基本上是 servlet 当中核心的代码。在Tapestry 当中 ,你编写的代码将会少的多,因为所有令人厌烦的 ,机械操作 (创建 URLs, 处理请求 ,管理服务器端的状态等等)都已经成为了框架的职责。 当然这并不意味着 Servlet API 是不能访问的 ;只是对 Tapestry 用户来说不是那么随处可见。该文档描述了许多 Tapestry 的内在特性。它并不是一个教程,教程是一些独立可用的文档 ,而是一个

10、 Tapestry 一些内部性质的的指导,所面向的人群是有志向掌握 Tapestry 的有经验的开发人员。Tapestry 现在的版本是4.0,在过去两年当中走过了漫长 的道路 。Tapestry关 注 的 焦 点 依 然 是 在 产 生 动 态 的 HTML 页 面 上 , 尽 管 它 也 存 在 大 量 对XHTML,WML 和其他 markup 类型的支持。几乎所有的 Tapestry API 都描述为了接 口,并且有 默认的实现。一个新的 继承对象应用了正 确的接口,那么框架的行为将会 改变.一个常用的例 子是覆盖页面和组件的 规格标准储 存在什么地方的方法 (也许是数 据库)。最后,

11、 Tapestry 值得夸耀 的是它 非常完整的 JavaDoc API 文档。这个文档存在就是为了作为那个文档的 补充 ,来填补也许并不 很明显 的空隙。JavaDoc 通常已经是 最好的参考了。1.1.Tapestry概述Tapestry 也许 最难理解的部 分就是它是面向组件的而不是面向操作。大部分网络技术(Struts,servlets,PHP等等 )都是面向操作的。当用户点击一个链接或者提交一个表单的时 候,你才创建 servlets( 或者 Actions, 或者别的什么 )。这时 候,你有责 任选择一个 合适的 URL,名称以及请求参数的 类型以至于你能 传递你所需要的 URL

12、的信息。 同时你有责任连接你这些操作之后的 输出页面 (无论他们是JSPs,Velocity 模板,或者别的其他的模板技术 )。这 就需要你构建那些URLs 并且把他 们放到 相应的 标记的 href 属性当中 ,或者 放到你的 标记属性的action 当中。而在 Tapestry 当中 每件事情都是不一 样的。 Tapestry 应用程序 由许多页面组成;页面又是由更小 的组件构成。组件 自己本身也是 由其他组件构成的。 每个页面有一个 唯一的 名字,并且 每个在页面当中的组件也有自己唯 一的 id 号.这就是一个面向组件模型(component object model)。每个组件都有一个

13、地址,这样能有效和容易的 被放置到 URL 当中去。实际上,你不用为一个 添加的购物篮 操作写一个 servlet。而且事 实上,你甚至不用写一个 添加购物篮 组件。你所要做的就是拿出一个已经存在的组件,例如 DirectLink , 然后对它 进行配置。当组件开 始工作以后 ,它将创建一个回 调 URL。当你点击那个 链接,回调 URL(包含了页面 名称 以及在页面当中组件的id)将执行该组件上的一个方法 .该方法执行一个你应用特定的一个监听方法。注意Tapestry 的监听方法和C#当中的 概念很类似 。对这两者来说 ,一个特别的对象实例的方法描述为一个对象。把这叫做一个”监听器”或者一个

14、”监听方法”是有点 颠覆 的命名 ;它应该 叫做一个“ 委派”或者一个“ 委派 方法” 更加合适,当时已经存在的 命名已经是 约定俗 成的规定了。 你仅仅提 供了监听的方法 .而不是 整个 servlet 。Tapestry 关注的是你的监听方法在正 确的时间和恰当的条件下被执行。你不必 考虑如何建立 URL,什么数据传入 URL,或者如 何把它于特 定应用的代码 挂钩 这一切都由框架来处理。1.2.页面和组件Tapestry 把应用程序 分解到 一系列页面当中。 每个页面都 由 Tapestry 的组件组装起来。组件本身也许 又由别的组件构成 .这点没有深度的限制。Tapestry 页面本身

15、也是组件 ,当然是一些有 专门职责的组件。所有的 Tapestry 组件都能 由其他的组件构成。 Tapestry 页面和 大部分用户定义的组件 ,拥有一个模板 ,一个 定义 了组件 静态和动态部 分的专门的 HTML文件 ,创建者指 示嵌入 的组件 哪是激活 的。组件不必有模板,大 部分组件给Tapestry 提供生成代码当中的 响应部分,而不是用模板。组件也许有一个或多个有名称 的参数 ,这些参数也许 被包含他 们的页面或者组件设置(或者 ,应该说是 绑定)。和 java 的方法参数不同 , Tapestry 组件参数也许是双向的;一个组件可能 读取一个参数 获得一个值,或者写一个参数来

16、设置一个值。大多数组件仅仅关注生成HTML。一个特 定的子组件处理 次要的请求 ,处理引入 的请求 ,例如 PageLink, DirectLink 和 ActionLink , 创建在 递交的页面中可点击的 链接,致力于分发这些用户提 供的代码,例如当这个 链接被点击的时 候。其他的组件 ,表单和表单 控制 组件 (TextField, PropertySelection, Checkbox,等等)能容易做成 HTML 表单。当这些组件开始工作的时 候,为了提 供默认值 他们从应用对象当中 读取属性。当表单 被提交的时 候,表单当中组件 读取 HTTP 请求参数 ,并且把这些 值转化为 恰当的类型,然后 更新应用对象的属性。1.3.引擎,服务和 朋友Tapestry 在不断的发展和完善自己 。 引 擎 (Engine) 是 一 个 中 心 的 对 象 ,它 在 Tapestry 当 中 起 到 了 相 同 于 HttpSession 在 servlet API 中的作用。 引擎最终负 责存储应用程序的 持久化状态(属性存在从一个请求到下一个),并且这个是通过存 贮 Engine 到

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号