Tapestry開發小組中的一個成員的blog中記錄了5.2版本帶來的新變化
1、增強了class reload的功能(我個人也認為這一點是5.2版本最令人激動的改進),以前Tapestry和其他的web框架類似,修改頁面不需要重新啟動application server, 但是修改了類之后,必須重新啟動應用服務器才行。但是在Tapestry5.2中,對這一點進行了修改,如果只改變了接口的實現類,而不改變接口的方法簽名,就不需要重新啟動應用服務器
2、新增了若干個組件,比如:Error和Trigger。
Error和原有的Errors類似,但是Error用于給指定的組件顯示驗證錯誤信息。
Trigger提供了在瀉染頁面過程中觸發任務事件的功能,常常用于通過RenderSupport來給頁面添加JavaScript代碼
3、新的插件(Mixin),包括RenderClientId, RenderNotification
4、集成了JSR-303 Bean的驗證,現在可以在頁面中使用JSR-303標準的注解來給字段指定需要的驗證
5、新的注解,包括@Contribute,@RequestParameter, @ActivationRequestParameter, 使用后兩個注解能很容易地獲取request中的參數
6、新的頁面生命周期事件:pageReset
7、鏈接修飾過程中的新事件: decoratePageRenderLink, decoreateComponentEventLink
8、頁面解析器的更換,原來使用StAX,造成了對Google App Engine和對OSGI的不兼容,5.2版本中使用了標準的SAX解析器
9、頁面緩沖池的廢除(我認為這是5.2版本的一個相當大而且也是非常重要的一個變化,我認為頁面緩沖池技術是tapestry學習曲線陡峭的一個重要原因),5.2版本中所有頁面將只有一個實例(也就是lewis howard說的單例化),頁面屬性的值將會在每個線程中使用一個Map來保存。這樣一個頁面實例可以在多個線程中使用,而不會有同步問題。
但是,由于這是一個新的嘗試,所以lewis也不確定這樣做的效果是否很好(詳見:http://tapestryjava.blogspot.com/2010/07/everyone-out-of-pool-tapestry-goes.html)所以,在5.2中可以通過配置恢復頁面緩沖池的使用。
posted on 2010-08-18 07:13
sanmao 閱讀(143)
評論(0) 編輯 收藏