不必关心链接,不必关心请求(http request)!不必关心响应(http response)!Tapestry构建于底层的request response模式,基于Servlet技术,抽象出面向组件开发的模型,Tapestry关心的是:页面、组件、事件、对象、方法、属性!
安装jar包
1、将Tapestry解压目录的lib目录中的jar包拷贝到WEB-INF/lib目录。并删除重复的包(commons- logging.jar/javaassist.jar/ognl-0.26.11.jar)
2、在web.xml中添加:
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
这是Tapestry的中央控制器,Tapestry页面显示,所有的请求,都会被发送到这个servlet上.
实例1:
最简单的Tapestry程序,在WebRoot添加Home.html,并访问网址:http://localhost:8080/contextpath/app
结果页面显示Home.html里面的内容。这是因为Tapestry总是会包含一个名字叫"Home"的页面,默认情况下就是根路径下的Home.html.
实例2:添加简单的动态内容:
现在时间是:<span jwcid="@Insert" value="ognl:new java.util.Date()"> </span>
并访问网址:http://localhost:8080/contextpath/app,在这个页面上,用到了Tapestry的Insert组件(Component).它带一个参数,通过一个ognl表达式来传递。在应用服务器的启动参数中添加 -Dorg.apache.tapestry.disable-caching=true.可以避免每次修改页面模板的时候重启服务器。
实例3:创建链接,指向某个页面:
<a href="#" jwcid="@PageLink" page="Home">刷新</a>
这次通过一个PageLink组件,指向Home页面,PageLink组件会自动产生指向Home页面的链接(我们不必关心这个链接)
实例4:简单的计数器
直到现在为止,我们还没有涉及到java类,但是已经让TapeStry成功运行起来了!该是写点java代码的时候了。我们想要创建一个计数器,每当用户点击“计数器增1”的时候,我们将这个计数器加1,然后在页面上显示出这个结果。
在传统的请求-响应模式中,我们针对这个问题,需要考虑的是:递交一个请求,创建相应的Action来接收这个请求,并维护计数器的值,然后决定成功转向的页面,将结果显示在页面上。
在Tapestry中,我们需要考虑的是:在哪个页面处理这个事件,结果如何显示在页面上?下面是Home.html
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment--><!--EndFragment-->
“计算器当前值是:<span jwcid="@Insert" value="ognl:counter"></span><br>
<a href="#" jwcid="@DirectLink" listener="listener:doClick" parameters="ognl:1">计数器增1</a><br>”
DirectLink指定listener为doClick,这将触发一个事件,实际上就是将要调用doClick方法。doClick()方法将要写在哪里?因为现在的页面,其动态数据无法简单获得,所以,必须给当前页面创建一个对应的类,我们的方法将创建在这个类里面。注意:在这个例子中,类名需定义为Home,listener的名字为doClick,而不是doClick();
添加Tapestry的配置文件:在Web-Inf目录下,创建app.application文件。
<?xml version="1.0"?>
<!DOCTYPE application PUBLIC
"-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">
<application>
<meta key="org.apache.tapestry.page-class-packages" value="com.bjsxt.crm.web.tapestry.test"/>
</application>
实例5:带一个参数的计数器,使用ognl:{param1,param2}这样的方式来传递多个参数<!--EndFragment-->
<!--EndFragment-->
<a href="#" jwcid="@DirectLink" listener="listener:plus" parameters="ognl:{3,5}">计算3+5</a><br>
计算结果是:<span jwcid="@Insert" value="ognl:result">
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment--><!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
分享到:
相关推荐
Tapestry 重要资料 教你认识tapestry
tapestry学习非常有帮助的资料。非常全的。。。。
Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...
资源名称:深入浅出Tapestry内容简介:本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在...
Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...
Tapestry 4 官方文档中文版本,现在中文资料比较少,和大家共享一下
tapestry 实例tapestry 实例tapestry 实例tapestry 实例
Tapestry5.0.16文档和大家一起学习
tapestry3开发指南,带tapestry3所有jar包
本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在J2EE Web应用程序中应用Tapestry框架的...
Tapestry4开发指南
tapestry5.2.6 最新jar包,Tapestry框架是一个位于java servlet容器和Tapestry应用程序之间的层
tapestry技术 Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得...
包含: tapestry 的源代码, tapestry集成spring2.0 tapestry快速启动 tapestry upload tapestry hibernate tapestry annotations
Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得java代码与html...
本文介绍Tapestry框架版本5。本文利用Tapestry 5开发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程中,本文体会到Tapestry带来的开发效率的提升。从多方面来讲解 Tapestry应用,比如应用的...
强大的tapestry框架的学习入门资料,详细介绍了tapestry的常用开发文档。
Tapestry通用WEB框架支持,切换皮肤,自主分页,
最新Tapestry 5 電子書