注意
Tapestry中的Listener方法和C#中的delegate十分相象。一個特殊對象的實例中的方法被當作一個對象。調用這個listener或者listener方法有點命名的混淆。它應該被叫做delegate和delegate方法,但是已經存在的命名方式已經被廣泛接受,在短時間內不容易被改變。
你只需要構造這listrner方法,而不是整個servlet。Tapestry會在正確的時候和正確的條件下調用listener的方法。你不需要考慮如何構造URL,以及通過URL傳遞什么數據,或者如何結合到你的應用程序中去。這些工作框架都替你做好了。
頁面和組件
Tapestry把一個應用程序分成一系列的頁面。每一個頁面由Tapestry的組件組成。組件本身也許是由組件構成。這里沒有人為的深度。
tapestry頁面本身就是組件,只是有些特殊用處的組件。
所有的tapestry的組件可以成為其他組件的容器。Tapestry頁面,和許多用戶定義的組件一樣,有一個模板,由一個特殊的html定義了一些靜態的和動態的組件位置,同時有標簽表明那些內嵌的組件是活躍的。組件不需要有標簽。Tapestry組件參數也許是雙向的,一個組件可以讀取一個參數來獲得一個值,或者寫一個參數來設置一個值。
其他的組件。如form和form控制組件(TextField, PropertySelection, Checkbox等等)使得html中的form的實現變得容易。當這樣的組件被顯示的時候,他們從程序對象中讀取屬性值來提供默認值。當form被提交的時候,form中的組件讀取http的查詢參數,轉換數值為合適的類型并且更新程序對象的屬性。
引擎,服務和
隨著時間的過去,Tapestry已經發展了它自己的方言。
Tapestry的引擎是一個一對象為中心的,它的作用和Httpsession在Servlet API的作用。 引擎的最終職責是存儲應用程序的持久狀態(從一個請求到下一個請求時存在的屬性),這個任務已經通過把引擎存貯在httpsession的方式被完成了。本文檔將主要討論默認的實現,同時標注如何在適當的時候擴展,重寫這些實現。
posted on 2005-12-19 09:39
我的java天地 閱讀(706)
評論(0) 編輯 收藏