Tapestry教程----組件類介紹

tapestry中的組件要比tapestry4的組件容易得多.不需要繼承任何類.類是實體類,不再是虛類.不再需要任何XML配置文件.在T5中僅僅需要一點用註釋配置說明,這些註釋說明要放置在類中字段上方.
    組件類,頁面類,component mixin 類,都是用同樣的方法創建的.沒有什麼很特殊的地方.
組件類基礎:
   
在T5中 創建頁面和組件類是非常簡單的,輕鬆的.
    有幾點要求:
      1,類必須是公共的.
      2,類必須在正確的包中,要必須和前面配置文件中一致.
      3,類中必須有一個公共的,無參數的構造函數.
  下面就一個最基本的組件例子:
java 代碼
package org.example.myapp.components;      import org.apache.tapestry.MarkupWriter;   import org.apache.tapestry.annotations.BeginRender;      public class HelloWorld   {       @BeginRender       void renderMessage(MarkupWriter writer)       {           writer.write("Bonjour from HelloWorld component.");       }   }  
這個組件僅僅是在頁面上輸出一個指定的信息.其中@BeginRender 註釋是組件生命週期註釋中一個類型.
組件包:
      組件類必須存放在指定的包中.這些包必須存放在應用程序根目錄包(假如爲root)下.
      頁面類 ,必須放在root.pages;
       組件類 ,必須放在root.components
      mixins,必須放在root.mixins.
子目錄/子包
    類不可能都直接放在這些包下(如pages,components,mixins等).類有可能存放在子包(子目錄)中.那麼子包名稱成爲頁面或者組件類型名稱的一部分.因此我們可能定義一個頁面組件爲com.example.myapp.pages.admin.CreateUser,他的邏輯頁面名稱(顯示在URLS中名稱)可能是admin/CreateUser.
    Tapestry提供了一些簡單的頁面名稱(或者組件類型,或者mixins類型)的優化工作.檢查包名稱是否則類的名稱的前綴或者後綴,如果是則可以把這些前綴或者後綴去掉.例如有這樣一個類:com.example.myapp.pages.user.EditUser,這個類可以有一個名稱爲user/Edit的頁面.這個目的是爲了讓URL更短,更加自然.
頁面與組件的區別:
    頁面和組件的區別是非常非常小的.僅僅是他們所在包名稱不一樣(頁面:root.pages.PageName,組件:root.components.ComponentType);
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章