http://jakarta.apache.org/tapestry/3.0.3/doc/DevelopersGuide/DevelopersGuide.html第三章第一段
Tapestry Components 組件
參數和綁定
在web程序中,組件被設計用來一起工作,顯示頁面的過程大致上是把源注入到組件中,并做預處理,并最終把信息顯示出來。
每一個組件都有一些特定的參數,參數有一個名稱,類別和必須或者可選。
組件參數看起來和JavaBeans的參數有些類似,其實這并不完全正確,JavaBeans properties是set-and-forget。
參數定義了它需要值的類型,值通過被稱為blinding的特殊對象提供。binding是組件和參數值之間的橋梁,給組件提供需要的值。這樣做的原始允許Pages和在Page中的組件共享許多并發(fā)的session。
當一個組件的參數需要值時,它必須獲得正確的binding,實現(xiàn)IBinding接口的對象實例,并調用方法拿到返回值賦值給參數。
Tapestry提供了自動獲取參數值的方法。這里有兩種bindings:static and dynamic。Static bindings 是只讀的;提供給binding的值是在組件規(guī)范中定義的。
Dynamic bindings 更流行和有用。一個動態(tài)綁定用JavaBeans的屬性名稱來獲得值來給組件參數賦值。事實上,動態(tài)綁定用參數路徑 property paths,允許綁定一個路徑通過正確的OGNL語言
Property paths 是一串參數名稱,用.分隔。如visit.userName 等價于java代碼getVisit().getUserName()