读书人

理解 Tapestry【转】

发布时间: 2012-11-03 10:57:44 作者: rapoo

了解 Tapestry【转】

在这篇由两部分构成的文章的前一部分中,作者兼?developerWorks?的热心贡献者?Brett?McLaughlin?对?Tapestry?进行介绍,从它的安装一直到文件结构。您可以看到?Tapestry?怎样帮助使用?HTML?和模板标记进行基于?servlet?的?Web?应用程序开发。

如果想出售产品,那么拥有在线设施是很重要的,不论是运作一家数百万美元的公司,还是只是想在假日处理几千个线手镯。在某些情况下,修补一些?Web?页面,并采用一些像?PayPal?或?eBay?这样的预先打包好的支持系统处理销售事务,也可以做得足够好。但是一个全面的、设计良好的?Web?应用程序应当能把在线销售从小打小闹提升到专业的、动态的在线商店的层次。每个人都知道,消费者在商店中买的东西比从跳蚤市场买的东西多。

问题在于,在进入大多数?Web?开发框架时?——?特别是在使用?Java??作为编程语言的时候?——?会发现复杂性太高。Struts、JSF?和?Spring?都是优秀的?Web?开发框架,但是它们中没有一个是适合胆小的人。(如果您曾经试着向新?Java?开发人员解释控制反转,您就会知道我谈的是什么了!)幸运的是,还有更容易的选择。

Tapestry?是在?Apache?软件许可下发布的一个开放源码的、基于?Java?的框架,它是专门为了简化?Web?开发设计的。它有以下关键特性:

易于安装:不需要是?Web?应用程序高手,就可以让?Tapestry?启动并运行。

易于使用:只需要基本的?Java?和?HTML(是的,确实是?HTML,而不是?servlet)技能就可以编写?Tapestry?应用程序。

易于扩大规模。当站点增长超过?10、50?或?100?个页面时,也不必抛弃?Tapestry。对于多数?Web?应用程序来说,Tapestry?都足够健壮。???

在这篇文章中(系列的前半部分),我会带您入?Tapestry?的世界。我将带您一起经历下载和安装这个框架的每一步,然后运行一些示例应用程序,让您理解它的工作方式。在下一篇文章中,我将介绍更高级的示例,让您更好地掌握?Tapestry?的核心框架。在了解核心框架之前,您将完全适应了?Tapestry?环境。

Tapestry?中的标注

Java?5.0?中的一项新特性是标注语法。使用标注,可以用一种与内联注释非常相似的样式对代码进行标记,标注以?@?符号开始。可以使用标注为类添加元数据,然后编译器或?Tapestry?这样的框架可以使用元数据。具体来说,Tapestry?允许使用标注,直接在代码中描述原本需要在额外页面或组件中定义的行为。请参阅?参考资料?学习关于?Java?5.0?中标注的更多内容。


理解 Tapestry【转】
理解 Tapestry【转】
回页首


?

变化、变化、变化

JAR?文件的名称可能略有不同,这与下载的?Tapestry?版本对应。但是,不管?Tapestry?的主版本号是多少,所有?Tapestry?安装中都应当有四个?JAR?文件。

设置?Tapestry?主要是把正确的类组(打包到?Java?JAR?文件中)放在正确的目录中。首先,需要找到核心的?Tapestry?JAR?文件。这些文件包含?Web?应用程序中要使用的全部?Tapestry?代码,它们位于?Tapestry?发行目录的根目录中:

tapestry-4.0-beta-12.jar?包含?Tapestry?的框架部分。??? tapestry-annotations-4.0-beta-12.jar?包含在?Java?5.0?上支持?Tapestry?标注所需要的类。??? tapestry-contrib-4.0-beta-12.jar?包含那些发布到?Tapestry?中,但是对操作来说并非必需的组件。??? tapestry-portlet-4.0-beta-12.jar?包含的类让?Tapestry?可以支持?JSR-168?——?portlet?JSR。???

请把这四个?JAR?文件放在使用?Tapestry?的?Web?应用程序的?WEB-INF/lib?目录中,就准备好了?——?差不多是这样。在启动应用程序之前,只需要再做一点儿?设置。

?

理解 Tapestry【转】
理解 Tapestry【转】
理解 Tapestry【转】
回页首


对于高级开发人员

如果想在?Tapestry?开发中使用额外项目,只需修改?build.properties,反映这些项目的位置即可。然后,只需删除没有?的项目对应的行,并让?Tapestry?下载实际的依赖项。

不要被错误消息吓倒:一定要阅读各种?echo?语句的输出;它们表明?JUnit?已经下载并安装,只需要重新启动构建过程。

构建和更多构建

这是对的,现在还没有完。在提示符下,再次输入?ant?install,继续构建。安装了?JUnit?之后,构建会运行许多?JUnit?测试,以确保?Tapestry?的设置正确。因为这个构建过程要花许多时间,所以可以去喝杯咖啡,或者到另一台机器上编写一些?XHTML。如果事情进展顺利,构建过程的末尾?看起来会像这样。

这些库都是什么?

构建完成之后,请进入?ext-package/lib?目录,列出目录列表。应当看到像这样的列表:

[bmclaugh:/usr/local/java/tapestry-4.0-beta-12/ext-package/lib]$?lscglib-full-2.0.1.jar????????????????????jdom-1.0.jarcglib-full-2.0.2.jar????????????????????junit-3.8.1.jarcommons-codec-1.3.jar???????????????????log4j-1.2.8.jarcommons-fileupload-1.0.jar??????????????ognl-2.6.7.jarcommons-logging-1.0.4.jar???????????????oro-2.0.8.jareasymock-1.1.jar????????????????????????portlet-api-1.0.jareasymockclassextension-1.1.jar??????????servletapi-2.3.jarhivemind-1.1-rc-1.jar???????????????????spring-1.1.jarhivemind-lib-1.1-rc-1.jar???????????????tapestry-4.0-beta-12.jarjavassist-3.0.jar???????????????????????tapestry-annotations-4.0-beta-12.jarjboss-j2ee-3.2.1.jar????????????????????tapestry-contrib-4.0-beta-12.jarjboss-j2ee-4.0.0DR4.jar?????????????????tapestry-portlet-4.0-beta-12.jarjcharts-0.6.0.jar???????????????????????vlibbeans-4.0-beta-12.jar

?

可以看到,构建过程下载了许多?额外的库。其中有许多是在构建?Tapestry?时使用的,其他一些是在编译时使用的。但是,对于运行时,需要把下面这些?Tapestry?JAR?文件放在?Web?应用程序的?WEB-INF/lib?目录中:

tapestry-4.0-beta-12.jar??? tapestry-annotations-4.0-beta-12.jar??? tapestry-contrib-4.0-beta-12.jar??? tapestry-portlet-4.0-beta-12.jar???

另外,还需要把以下依赖项文件放在?Web?应用程序的?WEB-INF/lib?目录中:

commons-codec-1.3.jar:URL?编码和解码工具的文件。??? commons-fileupload-1.0.jar:处理多部分文件上载的库。??? commons-logging-1.0.4.jar:Tapestry?用来记录信息和错误的框架。??? hivemind-1.1-rc-1.jar:Tapestry?Java?对象的服务注册表。??? hivemind-lib-1.1-rc-1.jar:HiveMind?库。??? javassist-3.0.jar:运行时代码增强库。??? ognl-2.6.7.jar:导航对象图的表达式语言。??? oro-2.0.8.jar:模式匹配的表达式库。???

看起来可能有许多文件,但是对于?Java?库来说,还是很常见的;只要把它们放在正确的位置,就不用再照顾它们了。关于安装的最好的消息就是:现在已经完成了!前提软件安装完成、Tapestry?和全部依赖项设置好之后,就可以看看一些?Tapestry?Web?应用程序是什么样了。

读书人网 >软件架构设计

热点推荐