微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

简单介绍

不必关心链接!不必关心请求(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中添加

复制代码 代码如下:

app

org.apache.tapestry.ApplicationServlet

app

/app

这是Tapestry的中央控制器。Tapestry页面显示,所有的请求,都会被发送到这个Servlet上。

实例1:最简单的Tapestry程序

在Webroot下添加Home.html 

复制代码 代码如下:

Insert title here

一个Tapestry程序

并访问网址:

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

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

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

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

Home.html改为: 

复制代码 代码如下:

Insert title here

一个Tapestry程序

现在时间是:

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

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

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

jwc = Java Web Component

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

复制代码 代码如下:

Insert title here

一个Tapestry程序

现在时间是:

刷新

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

实例4:简单的计数器

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

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

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

下面是Home.html

复制代码 代码如下:

Insert title here

一个Tapestry程序

现在时间是:

刷新

计数器当前的值是:

计数器增1

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 

复制代码 代码如下:

br>"-//Apache Software Foundation//Tapestry Specification 4.0//EN"

"http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">

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

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

Home.html改为: 

复制代码 代码如下:

Insert title here

一个Tapestry程序

现在时间是:

刷新

计数器当前的值是:

计数器增1

计数器增5

计数器增10

清空计数器

12下一页阅读全文

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐