首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

(转载)Tapestry最新版5.1.0.5课程(二)

2012-11-09 
(转载)Tapestry最新版5.1.0.5教程(二)1、Start.tml和Start.javaTapestry不需要在Web.xml中配置welcome页面,

(转载)Tapestry最新版5.1.0.5教程(二)
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方法的。

原文地址:http://www.blogjava.net/usherlight/archive/2009/05/31/279277.html

热点排行