`

Tapestry4.1.2入门

阅读更多
作者: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

 

在这个页面上,用到了 Tapestry Insert 组件( 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);

       }

}

 

 

注意 在这个例子中,类名需定义为 Home listener 的名字为 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 >

</

分享到:
评论

相关推荐

    Tapestry4.1.2 入门-介绍

    【Tapestry4.1.2 入门-介绍】 Tapestry 是一个基于Java的Web应用程序框架,它提供了一种面向组件的开发方式,极大地简化了Web应用的构建过程。在Tapestry中,开发者无需关注HTTP请求的处理细节,如链接、请求流向和...

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

    在开始使用Tapestry 4.1.2之前,首先需要进行必要的环境配置。这包括将Tapestry提供的jar包拷贝到项目的WEB-INF/lib目录下,并确保移除重复的库(如commons-logging.jar、javassist.jar和ognl-2.6.11.jar)。然后,...

    tapestry学习入门资料

    "tapestry学习入门资料" Tapestry 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...

    Tapestry简单入门.rar_java Tapestry_tapestry

    本教程将帮助初学者了解Tapestry的基本概念,带你逐步入门并掌握其核心组件的使用。 首先,让我们深入理解Tapestry的核心理念。Tapestry的目标是通过提高开发效率、简化代码结构和增强可维护性来改善Java Web应用的...

    Tapestry入门

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

    Tapestry 5.1 实例教程(全部)

    **一、Tapestry 5.1入门** 1. **环境配置**:首先,你需要安装Java Development Kit (JDK) 和Apache Maven,这两个是开发Tapestry应用的基础。配置Maven的`pom.xml`文件,以便引入Tapestry 5.1的相关依赖。 2. **...

    EnjoyWeb(tapestry入门)

    《EnjoyWeb:Tapestry入门》是一本专为希望快速掌握Tapestry框架并享受Web开发乐趣的读者设计的教程。Tapestry是一款强大的、基于Java的Web开发框架,它简化了复杂的应用程序构建过程,使得开发者能够更专注于业务...

    Tapestry4的入门资料

    Tapestry4是一款基于Java的Web应用程序框架,它在2000年代初期非常流行,由Apache软件基金会维护。这个框架的主要目标是提供一种高效、易于理解和使用的工具,用于构建动态、数据驱动的Web应用。以下是一些关于...

    Tapestry入门.ppt

    【Tapestry框架详解】 Tapestry是一款开源的基于Servlet的应用程序框架,它采用组件对象模型来构建动态、交互式的Web应用。这个框架的核心概念是Java Web Component(JWC),表现为HTML标记上的jwcid属性。JWC允许...

    Tapestry5最新中文入门实例教程

    ### Tapestry5最新中文入门实例教程 #### 一、引言 Tapestry是一个使用Java语言创建Web应用程序的面向组件的开发框架。本教程旨在通过实际案例帮助读者掌握Tapestry 5的基本概念和核心功能,并体验其带来的高效开发...

    tapestry官方中文文档

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它强调了组件化、模块化和可重用性,使得开发复杂的Web应用变得更加简单。本文将深入介绍Tapestry 4的相关知识点。 1. **组件化编程**: ...

    Tapestry4开发指南

    本指南将着重于Tapestry4的快速入门和实践,对于理论部分,建议读者参考之前关于Tapestry3的资料,以获得更全面的理解。 #### 五、Tapestry4 QuickStart 为了帮助开发者快速上手Tapestry4,以下是一套环境搭建步骤...

    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开发技术的公司与个人用户。

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

    **Tapestry 3 开发指南** Tapestry 3 是一个开源的Java Web应用程序框架,它在20世纪90年代末至21世纪初非常流行,由Apache软件基金会维护。这个框架提供了组件化、事件驱动和声明式编程模型,帮助开发者构建动态、...

    tapestry源码 api等

    Tapestry是一个强大的Java Web应用程序框架,由Apache软件基金会维护。它强调组件化、模块化和松耦合的开发方式,使得开发人员可以构建出高效、可维护的Web应用。以下是对Tapestry源码、API及相关库的详细解读: 1....

Global site tag (gtag.js) - Google Analytics