Tapestry的页面怎么配置(tapestry,编程语言)

时间:2024-04-27 23:46:52 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    Tapestry%E7%9A%84%E9%A1%B5%E9%9D%A2%E6%80%8E%E4%B9%88%E9%85%8D%E7%BD%AE

1、Tapestry 5.1的Start.tml和Start.java

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

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

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

在Tapestry中,页面的跳转和Struts之类的框架是不同的,Struts的做法是Action返回一个字符串,Struts在xml配置文件中进行搜索匹配,决定跳转的页面。而Tapestry没有类似的配置文件,它的做法是在当前页中引用跳转页面。比如:想从Start跳转到Register页面的话,需要在Start中注入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 5.1页面中的表达式

类似于jsp中< %= 变量名%>这样的写法,Tapestry的语法是${变量名},其中变量名是需要在页面对应的Java类中有get方法的。

4. Tapestry 5.1中页面相关的其他注意事项

◆在Tapestry中,页面称之为页面模板(Page Template)。Tapestry的页面模板必须是一个Well Formed Xml,需要引入Tapestry的Xml命名空间才能使用Tapestry的组件。示例:

◆在页面模板中可以使用表达式来获取变量的值。这种表达式在Tapestry中称之为:Expansion。

◆在前一篇文章中已经说过,一个页面模板必须有一个对应的Java类。在Tapestry中最基本的Expansion就是一个Java类的属性。比如:${userName}这就是一个在可以在页面模板中使用的Expansion,为了正确的显示用户名,必须在Java类中有一个对应的public String getUserName()这样一个方法。注意:是一个getter方法,而不必需是public String userName,实际上,如果没有userName这个属性,而只有getUserName这个方法,应用将能正确运行。

◆Expansion是不区分大小写的,也就是说${userName}和${UserName}是等价的。

◆使用Expansion,我们不仅可以显示Java类的属性,而且可以显示该属性的属性,比如Java类有一个日期型属性public Date getBirthday();那么,在页面模板中就可以这样使用:${birthday.time},相当于调用getBirthday().getTime()

◆也可以显示地调用非getter方法:比如:${birthday.hashCode()},Tapestry5.1开始,可以将属性作为函数调用的参数了。

◆可以使用?.来调用方法:比如:${birthday?.time},这样即使birthday是null,页面也不会报错。

◆Tapestry的Expansion是会编译时生成class文件的,而不是在运行时使用反射来取值的。Tapestry的作者认为这是Tapestry性能优于Struts2的可能(注意:Howard Lewis Ship也只是猜测)原因之一。

◆Tapestry的Expansion使用的几个说明:

a、Expansion旁边的空白是会被忽略的

b、整数和小数前面可以使用负号

c、常数都是使用十进制的。

d、字符串需要使用单引号

e、可以使用..来表示一个范围,比如:1..5,表示1到5

本文:Tapestry的页面怎么配置的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:JSF/Spring MVC/Stripes/Struts 2/Tapestry/Wicket的优缺点是什么下一篇:

4 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18