我们编写一个在页面上显示是“Hello World! ”,我们至少需要编写一个Page对象和一个对应模板文件(tml)。
第 一步,Page对象编写
在Tapestry5中Page是与一个页面对应的POJO对象,它不需要继承Tapestry框架的任何基类或实现任 何接口,但是随着我们业务变得复杂Page会增加,在它的内部会增加一些事件处理方法和Annotations(标注)。
作为第 一个运行的首页面的Page对象命名是有规定的“Start”,当然我们还可以设定成为别的命名“Start”是默认的命名,而且 它必须放在“com.kingbegin.web.pages”包下面,Start.java的代码如清单所示。
package com.kingbegin.web.pages; public class Start { private String message; public String getMessage() { return "Hello World!"; } }
从程序清单我们message属性和对message属性访问的getMessage方法以备页面中显示。
第二步,编写模板文件
与Page对象Start.java对应的模板文件是Start.tml,它的存放位置有两个地方一个是与Page对象Start.java放在同一个 包下面<tapestry5-first工程路径>\src\com\kingbegin\web\pages目录下,另外一处是放在WEB-INF (<tapestry5-first工程路径>\WebRoot\WEB-INF)目录下。Start.tml代码如清单所示。
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head> <title>第一个Tapestry页面</title> </head> <body> <h1> 第一个Tapestry页面 </h1> <h2 id="label1"> ${message} </h2> </body> </html>
从程序清单Start.tml文件本质是一个XHTML文件,它使用了Tapestry5命名空间—— xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd",在模板文件中还混合有表达式语言 “${message}”,表达式语言可以读取Page对象数据,此外在模板文件中还会有反映控件的标签元素,进一步实现与Page对 象的交互。
http://my.opera.com/wanqiuzimi/blog/zhenyan0010
http://my.opera.com/wanqiuzimi/blog/zhenyan009
http://my.opera.com/wanqiuzimi/blog/zhenyan008
http://my.opera.com/wanqiuzimi/blog/zhenyan007
http://my.opera.com/wanqiuzimi/blog/zhenyan006
http://my.opera.com/caiminshunfa/blog/zhenyan001
http://my.opera.com/caiminshunfa/blog/zhenyan002
http://my.opera.com/caiminshunfa/blog/zhenyan003
http://my.opera.com/caiminshunfa/blog/zhenyan004
http://my.opera.com/caiminshunfa/blog/zhenyan005
http://my.opera.com/zhantianyou/blog/zhenyan0014
http://my.opera.com/zhantianyou/blog/zhenyan0015
http://my.opera.com/zhantianyou/blog/zhenyan0013
http://my.opera.com/zhantianyou/blog/zhenyan0012
http://my.opera.com/zhantianyou/blog/zhenyan0011
http://my.opera.com/caiminshunfa/blog/zhenayn0026
http://my.opera.com/caiminshunfa/blog/zhenyan0027
http://my.opera.com/caiminshunfa/blog/zhenyan0028
http://my.opera.com/caiminshunfa/blog/zhenyan0029
http://my.opera.com/caiminshunfa/blog/zhenyan0030
http://my.opera.com/wanqiuzimi/blog/zhenyan0021
http://my.opera.com/wanqiuzimi/blog/zhenayn0022
http://my.opera.com/wanqiuzimi/blog/zhenyan0023
http://my.opera.com/wanqiuzimi/blog/zhenayn0024
http://my.opera.com/wanqiuzimi/blog/zhenyan0025
http://my.opera.com/zhantianyou/blog/zhenyan0016
http://my.opera.com/zhantianyou/blog/zhenyan0017
http://my.opera.com/zhantianyou/blog/zhenyan0018
http://my.opera.com/zhantianyou/blog/zhenyan0019
http://my.opera.com/zhantianyou/blog/zhenayn0020
http://my.opera.com/caiminshunfa/blog/zhenyan0035
http://my.opera.com/caiminshunfa/blog/zhenyan0034
http://my.opera.com/caiminshunfa/blog/zhenyan0033
http://my.opera.com/caiminshunfa/blog/zhenyan0032
http://my.opera.com/caiminshunfa/blog/zhenyan0031
http://my.opera.com/wanqiuzimi/blog/zhenyan0039
http://my.opera.com/wanqiuzimi/blog/zhenyan0038
http://my.opera.com/wanqiuzimi/blog/zhenyan0037
http://my.opera.com/wanqiuzimi/blog/zhenyan0036
http://my.opera.com/wanqiuzimi/blog/zhenyan0040
http://my.opera.com/zhantianyou/blog/zhenyan0043
http://my.opera.com/zhantianyou/blog/zhenyan0044
http://my.opera.com/zhantianyou/blog/zhenyan0042
http://my.opera.com/zhantianyou/blog/zhenyan0041
http://my.opera.com/zhantianyou/blog/zhenyan0045
http://my.opera.com/caiminshunfa/blog/zhenyan0046
http://my.opera.com/caiminshunfa/blog/zhenyan0048
http://my.opera.com/caiminshunfa/blog/zhenyan0049
http://my.opera.com/caiminshunfa/blog/zhenyan0050
http://my.opera.com/caiminshunfa/blog/zhenyan0047
http://my.opera.com/wanqiuzimi/blog/zhenyan0053
http://my.opera.com/wanqiuzimi/blog/zhenyan0054
http://my.opera.com/wanqiuzimi/blog/zhenyan0052
http://my.opera.com/wanqiuzimi/blog/zhenyan0051
http://my.opera.com/wanqiuzimi/blog/zhenyan0055
http://my.opera.com/zhantianyou/blog/zhenyan0057
http://my.opera.com/zhantianyou/blog/zhenyan0058
http://my.opera.com/zhantianyou/blog/zhenyan0059
http://my.opera.com/zhantianyou/blog/zhenyan0060
http://my.opera.com/zhantianyou/blog/zhenyan0056
http://my.opera.com/caiminshunfa/blog/zhenyan0075
http://my.opera.com/caiminshunfa/blog/zhenyan0074
http://my.opera.com/caiminshunfa/blog/zhenyan0073
http://my.opera.com/caiminshunfa/blog/zhenyan0072
http://my.opera.com/caiminshunfa/blog/zhenyan0071
http://my.opera.com/wanqiuzimi/blog/zhenyan0070
http://my.opera.com/wanqiuzimi/blog/zhenyan0069
http://my.opera.com/wanqiuzimi/blog/zhenyan0068
http://my.opera.com/wanqiuzimi/blog/zhenyan0067
http://my.opera.com/wanqiuzimi/blog/zhenyan0066
http://my.opera.com/zhantianyou/blog/zhenyan0065
http://my.opera.com/zhantianyou/blog/zhenyan0064
http://my.opera.com/zhantianyou/blog/zhenyan0063
http://my.opera.com/zhantianyou/blog/zhenyan0062
http://my.opera.com/zhantianyou/blog/zhenyan0061
http://my.opera.com/zhantianyou/blog/zhenyan0078
http://my.opera.com/zhantianyou/blog/zhenyan0079
http://my.opera.com/zhantianyou/blog/zhenyan0080
http://my.opera.com/zhantianyou/blog/zhenyan0077
http://my.opera.com/zhantianyou/blog/zhenyan0076
http://my.opera.com/wanqiuzimi/blog/zhenyan0082
http://my.opera.com/wanqiuzimi/blog/zhenyan0083
http://my.opera.com/wanqiuzimi/blog/zhenyan0084
http://my.opera.com/wanqiuzimi/blog/zhenyan0085
http://my.opera.com/wanqiuzimi/blog/zhenyan0081
http://my.opera.com/caiminshunfa/blog/zhenyan0086
http://my.opera.com/caiminshunfa/blog/zhenyan0087
http://my.opera.com/caiminshunfa/blog/zhenyan0088
http://my.opera.com/caiminshunfa/blog/zhenyan0089
http://my.opera.com/caiminshunfa/blog/zhenyan0090
http://my.opera.com/zhantianyou/blog/zhenyan0095
http://my.opera.com/zhantianyou/blog/zhenyan0094
http://my.opera.com/zhantianyou/blog/zhenyan0093
http://my.opera.com/zhantianyou/blog/zhenyan0092
http://my.opera.com/zhantianyou/blog/zhenyan0091
http://my.opera.com/wanqiuzimi/blog/zhenyan00100
http://my.opera.com/wanqiuzimi/blog/zhenyan0099
http://my.opera.com/wanqiuzimi/blog/zhenyan0098
http://my.opera.com/wanqiuzimi/blog/zhenyan0096
http://my.opera.com/wanqiuzimi/blog/zhenyan0096\