锁定老帖子 主题:了解 Tapestry【转】
该帖已经被评为隐藏帖
|
||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | |||||||||||||||||||||
发表时间:2008-06-24
在这篇由两部分构成的文章的前一部分中,作者兼 developerWorks 的热心贡献者 Brett McLaughlin 对 Tapestry 进行介绍,从它的安装一直到文件结构。您可以看到 Tapestry 怎样帮助使用 HTML 和模板标记进行基于 servlet 的 Web 应用程序开发。 如果想出售产品,那么拥有在线设施是很重要的,不论是运作一家数百万美元的公司,还是只是想在假日处理几千个线手镯。在某些情况下,修补一些 Web 页面,并采用一些像 PayPal 或 eBay 这样的预先打包好的支持系统处理销售事务,也可以做得足够好。但是一个全面的、设计良好的 Web 应用程序应当能把在线销售从小打小闹提升到专业的、动态的在线商店的层次。每个人都知道,消费者在商店中买的东西比从跳蚤市场买的东西多。 问题在于,在进入大多数 Web 开发框架时 —— 特别是在使用 Java™ 作为编程语言的时候 —— 会发现复杂性太高。Struts、JSF 和 Spring 都是优秀的 Web 开发框架,但是它们中没有一个是适合胆小的人。(如果您曾经试着向新 Java 开发人员解释控制反转,您就会知道我谈的是什么了!)幸运的是,还有更容易的选择。 Tapestry 是在 Apache 软件许可下发布的一个开放源码的、基于 Java 的框架,它是专门为了简化 Web 开发设计的。它有以下关键特性:
在这篇文章中(系列的前半部分),我会带您入 Tapestry 的世界。我将带您一起经历下载和安装这个框架的每一步,然后运行一些示例应用程序,让您理解它的工作方式。在下一篇文章中,我将介绍更高级的示例,让您更好地掌握 Tapestry 的核心框架。在了解核心框架之前,您将完全适应了 Tapestry 环境。 您很快就会了解到 Tapestry 的口号是简单。这种简单不代表原始 或不成熟,而是代表易于理解、易用 和直观。因为安装是任何一项新技术的入门,所以毫不夸张地说,安装 Tapestry 非常容易。对于入门者来说,只有很少的前提要求,而这些要求对于 Web 开发人员来说,都是相当标准的,所以它们可能已经安装了。(如果没有,那么请参阅 参考资料 一节获得技术下载。)
显然,使用 Tapestry 的第一个要求是,在机器上要有 Java 平台正在运行。虽然 Tapestry 几乎可以和任何相对较新的 Java 版本合作(Java 1.3 及以上版本),但最好是使用 Java 5.0。Tapestry 的几个可选特性只能在 Java 5 下工作。而且,现在真的是没有什么理由不 转换到 Java 5:它是稳定并经过良好测试的,已经经过了最初始的发展痛苦。 有了 JVM 和 servlet 引擎,还需要 Apache Ant 这样的构建工具。虽然下载 Ant 很容易,但需要确定在路径中有 Ant 的二进制代码(对于 Linux/Mac OS X 系统是
最后需要安装一个微内核,叫作 HiveMind,用它为 Tapestry 应用程序登录对象。我不会在这篇文章中详细讨论 HiveMind —— 它本身就值得用几篇文章讨论!—— 但是您会看到 Tapestry 如何使用它。在从 Jakarta Web 站点下载了 HiveMind 之后,请把它放在与 Tapestry 相同的目录中;例如,可能使用 /usr/local/java/hivemind-1.1 或 C:/java/hivemind-1.1。任何位置都可以,只要记住把它放在哪儿了! Tapestry 实际上还有许多依赖项,但是安装了 HiveMind、Ant 和 Java 5.0 之后,就能让 Tapestry 自己处理剩下的依赖项。因为 Tapestry 是一个 Web 应用程序框架,所以在准备运行应用程序时,还需要一个 servlet 引擎,例如 Apache Tomcat(请参阅 参考资料)。Tapestry 应用程序打包成 WAR 文件(Web 应用程序档案),这样就可以把它们放进 servlet 引擎的 Web 应用程序目录中。这篇文章的所有示例都使用 Tomcat,但是可以很容易地把 Tapestry 用于您选择的其他 servlet 引擎。
所有的前提条件就绪之后,请前往 Jakarta Tapestry 的主页(请参阅 参考资料),从 Apache 的镜像站点下载 Tapestry。先选择最新的 Tapestry 4.0 版,编写这篇文章时是 tapestry-4.0-beta-12.tar.gz(Windows 用户请选择 .zip 文件)。一般来说,最好是用稳定版来学习一个新框架,而不要使用更新的 beta 代码。但是,Tapestry 4.0 在 2005 年 11 月已经接近 beta 周期的末尾,相对于 Tapestry 3.x 来说提供了显著的 改进。(在阅读这篇文章的时候,Tapestry 4.0 可能已经能够使用了。) 在 Tapestry 的下载站点上时,您可能还想下载文档集。在编写这篇文章的时候,文档集文件叫作 tapestry-4.0-beta-12-docs.tar.gz。展开这个档案,应当得到名为 tapestry-4.0-beta-12 的新文件夹,但是如果下载了更新版的 Tapestry,文件夹名称可能会有变化。 请把这个文件夹移动到自己喜欢的保存 Java 项目安装的地方;例如 /usr/local/java 这样的位置就很好,或者也可以考虑 C:/java。在每种情况下,都要新建一个 Tapestry 目录。在这个目录中,有许多信息;请参考图 1 了解顶级目录结构: 术语安装 对于 Tapestry 来说,有点儿名不符实!Tapestry 与在后台运行的 Java 应用程序或者在网络上提供内容的 servlet 引擎不同。相反,它是一组可以在应用程序中使用的实用工具 —— 从类到标记。所以不是 “安装” Tapestry,而是让 Web 应用程序可以使用它,并把 Tapestry 和它的依赖项与 Web 应用程序绑在一起。
设置 Tapestry 主要是把正确的类组(打包到 Java JAR 文件中)放在正确的目录中。首先,需要找到核心的 Tapestry JAR 文件。这些文件包含 Web 应用程序中要使用的全部 Tapestry 代码,它们位于 Tapestry 发行目录的根目录中:
请把这四个 JAR 文件放在使用 Tapestry 的 Web 应用程序的 WEB-INF/lib 目录中,就准备好了 —— 差不多是这样。在启动应用程序之前,只需要再做一点儿 设置。
Tapestry 试图为 Web 应用程序提供一种简化的编程模型和易于使用的环境。它的做法是抽象出重复的、常见的任务的细节,所以它使用许多 实用工具。不论是支持表达式,还是登记对象,还是创建漂亮的用户界面组件,Tapestry 都依赖第三方库让 Web 开发对于开发人员尽可能容易。 幸运的是,Tapestry 会自己进行大多数依赖项的下载和安装工作。唯一的麻烦就是跟踪这些额外的 JAR 文件,但是正如在这一节中会看到的,这不是个大问题。 因为 Tapestry 用 HiveMind 来确定和下载依赖项,所以第一步是让 Tapestry 知道 HiveMind 文件在哪儿。请转到 Tapestry 目录 —— 可能是 /usr/local/java/tapestry-4.0-beta-12 —— 然后进入 config 目录。应当看到一个 build.properties 文件。打开它的时候,会看到类似清单 1 的内容。在这里列出了 Tapestry 的几个核心库和依赖项,以及它们的位置。这个列表并不反映 Tapestry 需要的全部依赖项,但是反映了编译基本的 Tapestry 应用程序需要的依赖项集合。
如果这些项目和分配给它们的位置看起来比较怪,那就对了。实际上应当清除掉属性文件中的全部内容,除了以
保存这个文件,并返回 Tapestry 的根目录,设置 Ant。 Ant 的安装非常简单,只是需要些时间。首先在 Tapestry 的根目录下输入 不必担心奇怪的格式;请输入 “
不要被错误消息吓倒:一定要阅读各种 这是对的,现在还没有完。在提示符下,再次输入 构建完成之后,请进入 ext-package/lib 目录,列出目录列表。应当看到像这样的列表:
可以看到,构建过程下载了许多 额外的库。其中有许多是在构建 Tapestry 时使用的,其他一些是在编译时使用的。但是,对于运行时,需要把下面这些 Tapestry JAR 文件放在 Web 应用程序的 WEB-INF/lib 目录中:
另外,还需要把以下依赖项文件放在 Web 应用程序的 WEB-INF/lib 目录中:
看起来可能有许多文件,但是对于 Java 库来说,还是很常见的;只要把它们放在正确的位置,就不用再照顾它们了。关于安装的最好的消息就是:现在已经完成了!前提软件安装完成、Tapestry 和全部依赖项设置好之后,就可以看看一些 Tapestry Web 应用程序是什么样了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||
浏览 964 次