(转载)Tapestry最新版5.1.0.5教程(五):Hello示例程序的剖析
根据前面的4部分内容,我们已经了解了Tapestry的基本概念,掌握了配置、组件等内容。现在我们通过剖析Tapestry的入门示例来对Tapestry进行一个总体上认识。1、web.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>app Tapestry 5 Application</display-name> <context-param> <!-- The only significant configuration for Tapestry 5, this informs Tapestryof where to look for pages, components and mixins. --> <param-name>tapestry.app-package</param-name> <param-value>t5demo</param-value> </context-param> <filter> <filter-name>app</filter-name> <filter-class>org.apache.tapestry.TapestryFilter</filter-class> </filter> <filter-mapping> <filter-name>app</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
这就是一个最简单的Tapestry应用所需要配置的内容了。
a. context-param中的tapestry.app-package配置,这在第一部分说过:
这是Tapestry要求配置的java package的名称,Tapestry相关内容都需要在这个package下面的pages, services, componets子package下。这里的配置是t5demo;
b. TapestryFileter的配置:
这个非常容易理解,几乎所有现在流行的web框架都需要一个类似的定义。
2、start.tml以及相应的java class,例子中就是t5demo.pages.Start.java
Start.java非常简单,只定义了一个get方法:
public class Start { public Date getCurrentTime() { return new Date(); }}
相应的页面start.tml
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"> <head> <title>app Start Page</title> </head> <body> <h1>app Start Page</h1> <p> This is the start page for this application, a good place to start your modifications. Just to prove this is live: </p> <p> The current time is: ${currentTime}. </p> <p> [<t:pagelink t:page="Start">refresh</t:pagelink>] </p> </body></html>
首先要注意在html的tag中加入了Tapestry的命名空间。
第二、${currentTime}就是Tapestry的Tag了,这里就会调用对应class的getCurrentTime方法在页面上显示对应的值。
第三、<t:pagelink>定义一个到自己本身页面的链接,来完成刷新的任务。t:pagelink在本系列的第4部分介绍过。
3、需要的library:
commons-codec.jarjavassist.jarlog4j.jarslf4j-api.jarslf4j-log4j.jartapestry5-annotations-5.1.0.5.jartapestry-core-5.1.0.5.jartapestry-ioc-5.1.0.5.jar
4、再加上一个log4j.properties,这就是一个最简单的tapestry应用所需要的全部东西了。
怎么样,感觉还是挺简单的吧。
原文地址:http://www.blogjava.net/usherlight/archive/2009/07/10/286315.html
页:
[1]