我们编写一个在页面上显示是“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对象的交互。