近期學習JSF,覺得JSF的設計思想比較先進,相信以后很多企業級應用會使用JSF作為前端展現技術。
JSF應用的編寫,在良好的IDE配合下,和桌面系統流行的Delphi、VB類似,非常簡單和快捷。程序員需要做的事情,就是從組件面板中選擇合適的組件,放置到頁面,設置組件的各種屬性,然后在組件合適的事件中編寫代碼。JSF的代碼是managed-bean的一部分,而非頁面的一部分,這樣頁面美工和程序員完全可以專注于自己的工作而不會相互干擾。如果說Struts是基于頁面的活動響應框架,則JSF提供了基于頁面組件的各種事件的活動響應框架。JSF將Web界面活動轉換成事件并通過http請求調用后端bean的各種方法進行響應。可以說,JSF提供了一種跨越客戶端與服務器的事件響應機制,這很好地提高了用戶體驗。傳統上,這樣事件響應是需要程序員編寫大量客戶端JS腳本才能實現的,現在JSF自動為你生成了這些腳本,程序員僅需要關注服務器的業務邏輯。這恰好是我比較喜歡的一項特性。
當然,使用JSF后,任何定義的事件都會導致服務器端產生響應,因此客戶端與服務器端的交流較多,應用的整體性能或許有些損失。JCP組織似乎正在努力改進JSF的性能。在目前硬件水平的飛速發展的前提下,性能的損失和應用的良好維護性相比,我覺得到不是什么大問題。
而更好的消息是,JSF框架提供了一個可擴展的組件架構,很多開源組織已經將AJAX技術添加到組件中(JBOSS、金蝶都有這樣的組件,我試用下,功能還挺強大。)。通過AJAX技術,客戶端組件可以異步地提交需要的請求給服務端,從而減少客戶端與服務端的交流量,進一步提高用戶的體驗。相信近期企業級應用開發中,使用融合AJAX技術的JSF組件構建RichClient的應用將會成為主流。