天天看点

JSF实现“Hello World!”

我们编写一个在页面上显示是“Hello World! ”,我们至少需要编写一个Page对象和一个对应模板文件(tml)。

第一步,Page对象编写

在Tapestry5中Page是与一个页面对应的POJO对象,它不需要继承Tapestry框架的任何基类或实现任何接口,但是随着我们业务变得复杂Page会增加,在它的内部会增加一些事件处理方法和Annotations(标注)。

作为第一个运行的首页面的Page对象命名是有规定的“Start”,当然我们还可以设定成为别的命名“Start”是默认的命名,而且它必须放在“com.kingbegin.web.pages”包下面,Start.java的代码如清单所示。

  1. package com.kingbegin.web.pages; 
  2. public class Start { 
  3.     private String message; 
  4.     public String getMessage() { 
  5.         return "Hello World!"; 
  6.     } 

从程序清单我们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代码如清单所示。

  1. <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> 
  2.     <head> 
  3.         <title>第一个Tapestry页面</title> 
  4.     </head> 
  5.     <body> 
  6.         <h1> 
  7.             第一个Tapestry页面 
  8.         </h1> 
  9.         <h2 id="label1"> 
  10.             ${message} 
  11.         </h2> 
  12.     </body> 
  13. </html> 

从程序清单Start.tml文件本质是一个XHTML文件,它使用了Tapestry5命名空间——xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd",在模板文件中还混合有表达式语言“${message}”,表达式语言可以读取Page对象数据,此外在模板文件中还会有反映控件的标签元素,进一步实现与Page对象的交互。