Tapestry最新版5.1.0.5教程(二)續
Posted on 2009-06-03 17:17 云自無心水自閑 閱讀(2246) 評論(2) 編輯 收藏 所屬分類: Java 、心得體會 、Tapestry1、在Tapestry中,頁面稱之為頁面模板(Page Template)。Tapestry的頁面模板必須是一個Well Formed Xml,需要引入Tapestry的Xml命名空間才能使用Tapestry的組件。示例:<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
2、在頁面模板中可以使用表達式來獲取變量的值。這種表達式在Tapestry中稱之為:Expansion。
3、在前一篇文章中已經說過,一個頁面模板必須有一個對應的Java類。在Tapestry中最基本的Expansion就是一個Java類的屬性。比如:${userName}這就是一個在可以在頁面模板中使用的Expansion,為了正確的顯示用戶名,必須在Java類中有一個對應的public String getUserName()這樣一個方法。注意:是一個getter方法,而不必需是public String userName,實際上,如果沒有userName這個屬性,而只有getUserName這個方法,應用將能正確運行。
4、Expansion是不區分大小寫的,也就是說${userName}和${UserName}是等價的。
5、使用Expansion,我們不僅可以顯示Java類的屬性,而且可以顯示該屬性的屬性,比如Java類有一個日期型屬性public Date getBirthday();那么,在頁面模板中就可以這樣使用:${birthday.time},相當于調用getBirthday().getTime()
6、也可以顯示地調用非getter方法:比如:${birthday.hashCode()},Tapestry5.1開始,可以將屬性作為函數調用的參數了。
7、可以使用?.來調用方法:比如:${birthday?.time},這樣即使birthday是null,頁面也不會報錯。
8、Tapestry的Expansion是會編譯時生成class文件的,而不是在運行時使用反射來取值的。Tapestry的作者認為這是Tapestry性能優于Struts2的可能(注意:Howard Lewis Ship也只是猜測)原因之一。
9、Tapestry的Expansion使用的幾個說明:
a、Expansion旁邊的空白是會被忽略的
b、整數和小數前面可以使用負號
c、常數都是使用十進制的。
d、字符串需要使用單引號
e、可以使用..來表示一個范圍,比如:1..5,表示1到5
2、在頁面模板中可以使用表達式來獲取變量的值。這種表達式在Tapestry中稱之為:Expansion。
3、在前一篇文章中已經說過,一個頁面模板必須有一個對應的Java類。在Tapestry中最基本的Expansion就是一個Java類的屬性。比如:${userName}這就是一個在可以在頁面模板中使用的Expansion,為了正確的顯示用戶名,必須在Java類中有一個對應的public String getUserName()這樣一個方法。注意:是一個getter方法,而不必需是public String userName,實際上,如果沒有userName這個屬性,而只有getUserName這個方法,應用將能正確運行。
4、Expansion是不區分大小寫的,也就是說${userName}和${UserName}是等價的。
5、使用Expansion,我們不僅可以顯示Java類的屬性,而且可以顯示該屬性的屬性,比如Java類有一個日期型屬性public Date getBirthday();那么,在頁面模板中就可以這樣使用:${birthday.time},相當于調用getBirthday().getTime()
6、也可以顯示地調用非getter方法:比如:${birthday.hashCode()},Tapestry5.1開始,可以將屬性作為函數調用的參數了。
7、可以使用?.來調用方法:比如:${birthday?.time},這樣即使birthday是null,頁面也不會報錯。
8、Tapestry的Expansion是會編譯時生成class文件的,而不是在運行時使用反射來取值的。Tapestry的作者認為這是Tapestry性能優于Struts2的可能(注意:Howard Lewis Ship也只是猜測)原因之一。
9、Tapestry的Expansion使用的幾個說明:
a、Expansion旁邊的空白是會被忽略的
b、整數和小數前面可以使用負號
c、常數都是使用十進制的。
d、字符串需要使用單引號
e、可以使用..來表示一個范圍,比如:1..5,表示1到5