1、页面结构:
在Tapestry应用程序中,一个页面(page)由一个HTML模块,一个页面规范(page specification),和一个
JAVA页面类(page class)构成。
2、最简单的页面:
a)一个HTML模板;
b)一个页面规范;
该规范使用XML,必须声明:
<?xml version="1.0" encoding="UTF-8"?>
<!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="com.tapestry.page.StudyTapestry">
</page-specification>
c)一个页面类;
该类必须继承BasePage类。
public abstract class StudyTapestry extends BasePage {
}
只要HTML模板中使用Tapestry,就必须声明页面规范和页面类,即便页面规范和页面类都没有任何属性或方法,变量。
例如有三个文件:StudyTapestry.html,StudyTapestry.page和StudyTapestry.java,就是对应上面模板、规范和类。
这三个文件联系关系:
在web-inf文件夹下的study.application(web.xml里面配置的)。该文件指定了html文件与page文件之间的联系:
<page name="StudyTapestry" specification-path="/WEB-INF/StudyTapestry.page"/>
打开StudyTapestry.page文件,声明Tapestry规范之后面,指定了page文件所指向的java文件:
<page-specification class="com.tapestry.page.StudyTapestry">
3、关于属性标签:
a) jwcid属性:(Java Web Component ID)在模板中用来指定组件。
b) <span>标签:HTML<span>标签是一个用来包容text和elements的容器,其本身并不能显示任何内容,仅仅是作为一个
stylesheet协助对页面显示的控制。
c) @记号:用来标明一个隐式组件。
按照组件的使用方式:
a) 隐式组件:组件类型和其结构直接在HTML模板中申明的组件。通常,Tapestry已经定义好的组件都是以隐式组件
的方式使用。
b) 显示组件:其组件类型和结构储存在页面规范中。通常,自定义的组件都是以显示组件的方式使用。
4、属性指定机制(specified properties)
属性指定就是由Tapestry自动生成典型的JavaBean属性。在代码中,定义抽象方法用来读取
和更新属性,只需定义即将使用的方法。Tapestry自己会生成一个子类来实现你的方法。你甚至不用声明变量,只需要在
页面规范(.page)中指明类型即可
<page-specification class="com.tapestry.page.StudyTapestry">
<property-specification name="knowledge" type="java.lang.String"/>
</page-specification>
在StudyTapestry类里面,仅仅需要定义该属性的抽象JavaBean方法,而不需要定义该属性。
public abstract String getKnowledge();
public abstract void setKnowledge(String knowledge);
当我们需要调用knowledge这个属性的时候,仅仅需要调用该属性的抽象JavaBean方法,而不需要定义与初始化实例。如:
// 给属性knowledge设值
setKnowledge("页面结构");
// 判断该知识点是不是“页面结构”
if ("页面结构".equals(getKnowledge())) {
}
实际上,Tapestry会自动创建一个子类来继承StudyTapestry类,并实现以JavaBean方式实现变量。