Tapestry是一个优秀的开源框架,使用标签或XSLT的方法时,总是因为缺乏编辑器而无法即时获得运行效果。而其对HTML代码的无破坏性,在HTML编辑器中所看到的效果即是运行时的结果,从而更易将界面与编码分工。
安装步骤:
1、安装TOMCAT4.1以上版本(http://jakarta.apache.org/tomcat)
2、下载Tapestry3.1(http://jakarta.apache.org/tapestry/)安装包,将其中lib目录下的以下文件拷贝至TOMCAT_HOME/common/lib
bsf-2.3.0.jar
commons-*.jar
jakarta-oro-2.0.6.jar
javassist-2.5.1.jar
ognl-2.6.3.jar
tapestry-3.0.jar
tapestry-contrib-3.0.jar
3、在TOMCAT下创建一个WEB APPLICATION,假设目录路径为HelloWorld
4、创建HelloWorld\WEB_INF\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">
<!-- generated by Spindle, http://spindle.sourceforge.net -->
<web-app>
<display-name>HelloWorld</display-name>
<filter>
<filter-name>redirect</filter-name>
<filter-class>org.apache.tapestry.RedirectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>redirect</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
</web-app>
5、创建HelloWorldWEB_INF\Home.page,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page-specification
PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<!-- generated by Spindle, http://spindle.sourceforge.net -->
<page-specification class="com.evsoft.tapestry.Home">
<description>Simple Home Page</description>
<component id="insertDate" type="Insert">
<binding name="value" expression="currentDate"/>
</component>
<component id="refresh" type="PageLink">
<static-binding name="page">Home</static-binding>
</component>
</page-specification>
6、创建HelloWorld\WEB_INF\Home.html,内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Simple</title>
</head>
<body>
<p>This application demonstrates some dynamic
behavior using Tapestry components.
<p>The current date and time is:
<b><span jwcid="insertDate">This Text Will Be Replaced</span></b>
<p>Click <a jwcid="refresh">here</a> to refresh.
</body>
</html>
7、创建HelloWorld\WEB_INF\HelloWorld.application,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application
PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<!-- generated by Spindle, http://spindle.sourceforge.net -->
<application name="HelloWorld" engine-class="org.apache.tapestry.engine.BaseEngine" >
<description><![CDATA[ add a description ]]></description>
<page name="Home" specification-path="Home.page"/>
</application>
8、编写一个测试component,并将其编译后的class拷贝至HelloWorld\WEB_INF\classes
package com.evsoft.tapestry;
import java.util.Date;
import org.apache.tapestry.html.BasePage;
public class Home extends BasePage {
public Date getCurrentDate() {
return new Date();
}
}
9、打开浏览器,运行一下(http://localhost:8080/HelloWorld)。看看效果:

Trackback: http://tb.donews.net/TrackBack.aspx?PostId=113875