`
l_rui_ci
  • 浏览: 40213 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

Tapestry4.1.2入门

    博客分类:
  • JAVA
阅读更多

作者:Kenny Lee | 来源:http://www.topxp.org |

简单介绍

不必关心链接!不必关心请求(http request)到了哪里!不必关心响应(http response)要转向哪里!Tapestry构建于底层的request-resonse模式,基于Servlet技术,抽象出面向组件开发的模型。Tapestry关心的是:页面、组件、事件、对象、方法、属性!

安装jar

1

Tapestry解压目录下的lib目录中的jar包拷贝到WEB-INF/lib目录。

并将重复的包删除(commons-logging.jar/javassist.jar/ognl-2.6.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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

<title>Insert title here</title>

</head>

<body>

第一个Tapestry程序

</body>

</html>

 

并访问网址:

http://localhost:8088/[context path]/app

 

结果页面显示Home.html里面的内容。

 

这是因为Tapestry总是会包含一个名字叫”Home”的页面,默认情况下就是根路径下的Home.html

 

实例2:添加简单的动态内容

 

Home.html改为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

<title>Insert title here</title>

</head>

<body>

第一个Tapestry程序

现在时间是:<span jwcid="@Insert" value="ognl:new java.util.Date()"> </span>

</body>

</html>

 

重新访问网址:http://localhost:8088/[context path]/app

 

在这个页面上,用到了TapestryInsert组件(Component)。它带一个参数,通过一个ognl表达式来传递。

 

在应用服务器的启动参数中添加:-Dorg.apache.tapestry.disable-caching=true,可以避免每次修改页面模板的时候重启服务器。

 

jwc = Java Web Component

 

实例3:创建链接,指向某个页面

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

<title>Insert title here</title>

</head>

<body>

第一个Tapestry程序

现在时间是:<span jwcid="@Insert" value="ognl:new java.util.Date()"></span>

<p>

<a href="#" jwcid="@PageLink" page="Home">刷新</a>

</body>

</html>

 

这次,通过一个PageLink组件,指向Home页面,PageLink组件会自动产生指向Home页面的链接(我们不必关心这个链接!)。

 

实例4:简单的计数器

直到现在为止,我们还没有涉及到java类,但是已经让Tapestry成功运行起来了!该是写点java代码的时候了。我们想要创建一个计数器,每当用户点击“计数器增1”的时候,我们将这个计数器加1,然后在页面上显示出这个结果。

 

在传统的请求-响应模式中,我们针对这个问题,需要考虑的是:递交一个请求,创建相应的Action来接收这个请求,并维护计数器的值,然后决定成功转向的页面,将结果显示在页面上。

 

Tapestry中,我们需要考虑的是:在哪个页面处理这个事件,结果如何显示在页面上?

下面是Home.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

<title>Insert title here</title>

</head>

<body>

第一个Tapestry程序

现在时间是:<span jwcid="@Insert" value="ognl:new java.util.Date()"></span>

<p>

<a href="#" jwcid="@PageLink" page="Home">刷新</a>

<p>

计数器当前的值是:<span jwcid="@Insert" value="ognl:counter"></span>

<a href="#" jwcid="@DirectLink" listener="listener:doClick">计数器增1</a>

</body>

</html>

 

DirectLink指定的listener为:doClick,这将触发一个事件,实际上就是将要调用doClick()方法。

 

doClick()方法将要写在哪里?因为现在的页面,其动态数据无法简单获得,所以,必须给当前页面创建一个对应的类,我们的方法将创建在这个类里面。

package com.bjsxt.crm.web.tapestry.test;

 

import org.apache.tapestry.annotations.Persist;

import org.apache.tapestry.html.BasePage;

 

public abstract class Home extends BasePage {

 

@Persist

public abstract int getCounter();

public abstract void setCounter(int count);

 

public void doClick(){

int counter = getCounter();

counter = counter + 1;

setCounter(counter);

}

}

 

 

注意在这个例子中,类名需定义为Homelistener的名字为doClick,而不是doClick()

 

另外,需要在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>

配置的主要目的是让Tapestry了解如何关联页面和页面类。

 

实例5:带一个参数的计数器

 

Home.html改为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

<title>Insert title here</title>

</head>

<body>

第一个Tapestry程序

现在时间是:<span jwcid="@Insert" value="ognl:new java.util.Date()"></span>

<p>

<a href="#" jwcid="@PageLink" page="Home">刷新</a>

<p>

计数器当前的值是:<spa

分享到:
评论

相关推荐

    Tapestry4.1.2 入门-介绍

    不必关心链接!不必关心请求(http request)到了哪里!...Tapestry构建于底层的request-resonse模式,基于Servlet技术,抽象出面向组件开发的模型。Tapestry关心的是:页面、组件、事件、对象、方法、属性!

    Tapestry4.1.2入门-介绍

    Tapestry 不必关心链接!不必关心请求(http request)到了哪里!不必关心响应(http response)要转向哪里!Tapestry构建于底层的request-resonse模式,基于Servlet技术,抽象出面向组件开发的模型。Tapestry关心的是:...

    java Tapestry4.1.2入门说明教程第1/2页

    不必关心链接!不必关心请求(http request)到了哪里!...Tapestry构建于底层的request-resonse模式,基于Servlet技术,抽象出面向组件开发的模型。Tapestry关心的是:页面、组件、事件、对象、方法、属性!

    Tapestry简单入门.rar_java Tapestry_tapestry

    Tapestry简单入门介绍,包含Tapestry入门、tapestry组件介绍

    tapestry学习入门资料

    强大的tapestry框架的学习入门资料,详细介绍了tapestry的常用开发文档。

    Tapestry入门

    01-Tapestry入门开源框架,初学者的首选

    Tapestry 5.1 实例教程(全部)

    Tapestry 5.1 实例教程(全部) Tapestry 5.1入门教程,包含基础入门及一些高级组件的使用教程,是学习Tapestry5.1不可多得的教程!

    EnjoyWeb(tapestry入门)

    一本非常好的TAPESTRY入门教程

    Tapestry入门.ppt

    Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。 一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。 Tapestry使得java代码与...

    Tapestry5最新中文入门实例教程

    本文介绍Tapestry框架版本5。本文利用Tapestry 5开发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程中,本文体会到Tapestry带来的开发效率的提升。从多方面来讲解 Tapestry应用,比如应用的...

    Tapestry4的入门资料

    个人开发Tapesry4时用的,个人觉得帮助很大。

    tapestry教程资料文档合集

    Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...

    深入浅出tapestry

    本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web..., 本书适合Web框架技术的爱好者、Tapestry入门学习者、Tapestry表现层开发人员和关注下一代的Web开发技术的公司与个人用户。

    tapestry5以上的帮助事例,帮助文档与spring衔接文档

    Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...

    深入浅出Tapestry

    资源名称:深入浅出Tapestry内容简介:本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在...

    tapestry官方中文文档

    Tapestry 4 官方文档中文版本,现在中文资料比较少,和大家共享一下

    Tapestry5.0.16_API文档

    Tapestry5.0.16文档和大家一起学习

    tapestry3开发指南,带tapestry3所有jar包

    tapestry3开发指南,带tapestry3所有jar包

    tapestry 实例

    tapestry 实例tapestry 实例tapestry 实例tapestry 实例

Global site tag (gtag.js) - Google Analytics