你好,Tapestry 3.0

原创 2003年07月30日 14:43:00

你好,Tapestry 3.0

mechiland, Jul 2003

本文主要介绍Tapestry3.0环境下一个简单用例Tapestry的配置方法,旨在帮助开发者熟悉3.0环境。由于Tapestry官方(http://jakarta.apache.org/tapestry/)提供的Tutorial文档很多是基于2.x的,这在极大程度上提高了学习的难度。关于Tapestry2.x的介绍以及Tapestry的框架,请参看第7期《程序员》杂志透明的一篇文章,这里不再多说。

2.x到3.0的变化我没有花太多的时间去研究——毕竟接触的时间有限,刚把概念弄明白,3.0就出来了,package的名字都变了,dtd也变了,一些配置的方法也不太一样了,所以本篇文章主要讨论3.0,对于2.x和3.0中区别的地方,尽量不进行比较;如果在文中比较之处有错,还请多多指教。

1 开发环境

Tomcat5.0, Win2000Server, Tapestry 3.0b2
开发工具:Editplus2.11 :)(项目小,没有必要用航母了)

2 让我们开始吧!

Ok, 让我们开始这个“你好,Tapestry3.0”吧!

首先,建立一个目录用来保存你的工程,假定x:/tapestry/hello(以后以$home代替);并最后建立如下文件结构:
-WEB-INF
--classes
--lib

在$home根目录下放入一个Home.html,代码如下所示:

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

<html>
<head>
<title>Hello, Tapestry!</title>
</head>

<body>
你好,<b>Tapestry 3.0!</b>
</body>
</html>

代码清单1:Home.html

这就是我们的主页面了。


然后在$home/WEB-INF/下面放入一个web.xml,出人意料的,这个web.xml竟然如此简单,而且与Tapestry2.x的文档中提供的大不一样哦~~

<?xml version="1.0"?>
<!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>Tapestry Tutorial</display-name>

<!--Redirect it to the servlet mapping address /h-->
<filter>
<filter-name>redirect</filter-name>
<filter-class>org.apache.tapestry.RedirectFilter</filter-class>
<init-param>
<param-name>redirect-path</param-name>
<param-value>/h</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>redirect</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/h</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>15</session-timeout>
</session-config>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

代码示例2:web.xml

稍微解释一下:名为redirect的filter是用来转向的,注意,那个init-param用来控制转向到哪里去,如果没有或者设置不正确,就会转到默认的地方(/app)。按照我们配置的情况,应该是当访问/时转到/h的servlet去。当然,这个设置是当下面的<welcome-file-list>无效时才起作用。

读过旧版tutorial的人就会奇怪,那个org.apache.tapestry.application-specification到哪里去了?在默认情况下,Tapestry会在/WEB-INF下寻找跟ApplicationServlet名称相同的.application(如本例中hello),另外,application的配置已经非常简单,对于我们Hello, Tapestry这样简单的用例,不用.application也是可以的。不过为了形式的完整,我们将它加上:

将hello.application文件放到$home/WEB-INF下面(与web.xml)放在一起

<?xml version="1.0"?>
<!DOCTYPE application PUBLIC
"-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<application name="Hello Tapestry 3.0">
</application>

代码示例3:hello.application

现在,就是我们的Home.page文件:

<?xml version="1.0"?>
<!DOCTYPE page-specification PUBLIC
"-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">

<page-specification class="org.apache.tapestry.html.BasePage"/>

代码示例4:Home.page

是不是不知道将这个文件放到哪里了?放到$home/WEB-INF下面就行了!

OK, 最后一步,将Tapestry所带的workbench示例下/WEB-INF/lib中所有的jar复制到$home/WEB-INF/lib。

3 部署

部署方法很简单了,你可以用jar工具将$home目录打成一个war包,或者直接将整个$home目录复制到$Tomcat_Home/webapps下面。不论你采用那种方法,部署成功后,打开浏览器,键入地址:http://localhost:8080/hello, 是不是显示出下面的画面呢?

CSDN_Dev_Image_2003-7-30831091.gif

4 小结

在Tapestry3.0中,部署应用程序更加容易了,本文由于案例较简单,很多步骤都可以忽略(在本例中,hello.application和Home.page都可以忽略不计),但是在复杂的应用中,如Tapestry自带的workbench示例,就不可忽略了。关于Tapestry的其他特性,作者正在研究中。Tapestry是个优秀的开发框架,如果那位有兴趣,或者对这篇文章中有什么不正确的地方,欢迎批评指正,Email: mechiland@163.net

 

Tapestry 3.0 Web构架 非常简易的模拟

====== Listener   部分 =======        public interface AfterListener {                         public ...
  • hzzxc888
  • hzzxc888
  • 2007年11月10日 15:26
  • 522

Tapestry 3.0 原理 简述

    最近几天看了Tapestry3.0源码,做个总结吧。    从对象的角度来述说3.0的原理及她的架构思想,当然只是简单的总结述说。ApplicationServlet    继承 httpSe...
  • hzzxc888
  • hzzxc888
  • 2007年11月08日 13:36
  • 1777

Tapestry框架使用方法技巧总结

一、弹出窗口页面: div class="hero-table" data-nav-group="#hero-nav-tab" data-search="#hero-search" data...
  • u012598738
  • u012598738
  • 2016年04月28日 17:25
  • 899

tapestry介绍

简介 Apache Tapestry是一个使用Java语言创建web应用的面向组件的开发框架。Tapestry应用建立在根据组件构建的页面的基础上。这个框架能够提供输入验证(inputvalidat...
  • Eric_Hxy
  • Eric_Hxy
  • 2015年03月21日 06:46
  • 1966

Tapestry笔记(三)

Tapestry笔记(三) 隐式调用组件:显示调用组件:20”/>        Tapestry启动后,扫描HTML模版,如果jwcid标签属性的值带有@则表示隐式调用,反之则显示调用组件。可以通过...
  • basin_yi
  • basin_yi
  • 2007年09月04日 17:58
  • 1518

Tapestry 组件详解

首先tapestry组件最基本的是由三个文件组成:Html,page,java文件. Html页面是前台,java就是后台逻辑,page文件就是将前台与后台联系起来的配置文件。这里的组件大部分只在...
  • CSDN__Java
  • CSDN__Java
  • 2015年10月14日 21:17
  • 633

tapestry组件

首先tapestry组件最基本的是由三个文件组成:Html,page,java文件 Html页面是前台,java就是后台逻辑,page文件就是将前台与后台联系起来的配置文件。这里的组件大部分只在ht...
  • xiaogezhuifengren
  • xiaogezhuifengren
  • 2011年11月22日 11:50
  • 4052

Tapestry中文文档

很久以前发现的一个不错的tapestry的中文网站,推荐给大家了,入门的可以瞧瞧。http://www.javaeye.com/pages/viewpage.action?pageId=205...
  • pypy_lumin
  • pypy_lumin
  • 2006年08月15日 21:43
  • 1298

Tapestry组件

将一个属性与一个组件的参数绑定后,组件不仅读取被绑定的属性,而且在显示前好药更新该属性。 所有的Tapsetry组件都有一个disabled属性,当为true时,表示该组件不能被单击。默认为fals...
  • u012784277
  • u012784277
  • 2014年08月05日 17:27
  • 708

Tapestry 5.3.8 中文乱码解决办法

   1、          遇到的Bug:字节的UTF-8序列的字节3无效 Bug 描述:在tml文件中出现汉字时,有时奇数会报错,有时偶数会报错。我用的版本是 Tapest...
  • andy_longjie
  • andy_longjie
  • 2015年08月14日 10:06
  • 316
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:你好,Tapestry 3.0
举报原因:
原因补充:

(最多只允许输入30个字)