您的位置:首页 > 其它

Tapestry最新版5.1.0.5教程(二)

2010-04-18 15:41 211 查看
1、Start.tml和Start.java

Tapestry不需要在Web.xml中配置welcome页面,也是使用约定大于配置的方式,默认的起始页面就是在pages目录下的Start。
Tapestry中的页面由两部分组成:一个Java类和一个相同名字的模板文件(类似于jsp,Tapestry中的后缀名为:tml)。其中Java
类是必须的,就算是没有任何代码,也必须要生成一个空类。tml模板在大多数情况下也是需要的,少数情况比如返回二进制流的话,可以不需要。

tml模板文件可以放在webroot目录下,也可以和Java类一直放在src目录下。

2、页面的跳转(可以用于指定跳转页面的东西:) @InjectPage

在Tapestry中,页面的跳转和Struts之类的框架是不同的,Struts的做法是Action返回一个字符串,Struts在xml配置文件中
进行搜索匹配,决定跳转的页面。而Tapestry没有类似的配置文件,它的做法是在当前页中引用跳转页面。比如:想从Start跳转到Register
页面的话,需要在Start中注入Register页面。示例代码如下:

Class Start{

@InjectPage

private Register register;

Object onSubmit() {

return register;

}



其中值得注意的是:onSubmit的修饰符并不是常见的public,而是缺省级别(或者说是package级别),这是Tapestry推荐的做法。
第一,比public级别低,这样的话,页面类的事件处理函数没有被公开,不是其他所有的人都能随便调用。第二,比private级别高,这样如果测试需
要的话,可以把测试类放在同一个package里,方便测试的进行。

在Tapestry的事件处理函数中可以有6种方式指定跳转的页面

a、什么也不返回,也就是返回类型是void,这样的话,页面不跳转,只是刷新当前页面

b、字符串。Tapestry会查找与该字符串对应的类

c、类。一般来说是一个Page类,这种方式比返回类名(字符串)要好,因为这样的话,在类重命名后,程序不会出错。

d、Page实例,

e、Link,

f、流(Stream),比如返回pdf或者Excel文件。

3、Tapstry页面中的表达式

类似于jsp中<%=
变量名%>这样的写法,Tapestry的语法是${变量名},其中变量名是需要在页面对应的Java类中有get方法的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: