JSF的缺陷:IDE方面支持不足
有了合適的組件集,良好的“生態環境”的建立也是件較容易的事情。當使用的用戶足夠多時,良好的“生態環境”就開始建立了。對于JSF而言,這樣的“生態環境”已經部分的建立了。除了組件供應商外,還有很多開發JSF的工具。如:JbossTools(或稱Exadel Studio更適合)、BEA Workshop(Workshop與NitroX的M7產品的合并產物)、Oracle的Jdeveloper、MyEclipse、NetBeans、IBM的JSF工具及IDEA對JSF的支持。
關于JSF的開發工具大概就這些了。也許有人會說,開發JSF很大程度上依賴于這些開發工具。其實這樣的說法并不公平。對初學者而言,這些IDE工具將幫助他們更容易學習JSF。許多的開發者常對初學Java人員建議,最理想的Java IDE是記事本(notepad)及命令行(cmd),那么有些人就由此推論,JSF最好的IDE應該也是記事本等簡單的編輯器,而JSF專業的開發工具將讓初學者“偷懶”,從而讓他們對JSF的理解浮于表面。這常常使JSF初學者迷茫。
那是不是意味著要放棄使用JSF的IDE工具嗎?當然不。因為我們不能由于工具能提供更加容易的開發過程而認為工具是有缺陷或框架是有缺陷的。
JSF的IDE并不能吸收大量的JSF用戶,這也就說明了JSF的“生態環境”在引導JSF初學者方面發揮不夠。“生態環境”代表著JSF的能力及威力。然而,它并不能向初學者展現它的核心思想,亦沒有解釋清楚初學者首先需了解的內容,同時沒讓初學者明白JSF框架所能提供而其它框架卻不能提供的優點。
真正的問題是在于,JSF基于如此基礎的組件,并不能直接為用戶提供更有利的組件,除非用戶自己再次開發基于JSF更好的組件。而用戶在沒有發現JSF的潛力之前,是難以開發更好的組件集的,同時,相關的文檔于此也可能將無濟于事。
組件開發者可以停止重復開發的車輪了。每個人都有一個tab面板、菜單組件、spinner、拖放機制。這些已經成熟了。對于更新更好的實現方式是歡迎的,但對“我也能”的實現方式,其實并不利于技術的傳播。JSF所需要的,正是一個基于界面模型而開發的組件集,它將是界面的標準實現。關于此組件集的文檔,當然也得簡單明了,易于初學者學習與掌握。
JSF發展速度很快。前面所提及的書籍都是關于JSF的優秀資源。特別是Seam項目的書籍,更是關于JSF的快速入門書籍。JSF的優勢在于它是一種標準,但僅僅是標準是不夠的。因為并不能做人們所期望的事的標準,總有一天會被其它的標準所代替的。就筆者而言,JSF還并不勝任此標準,當然每位開發人員都會做出自己最終的決策。
不管怎么說,JSF總歸是一種非常有潛力的組件框架。當然它也不是唯一的組件框架,本文的主題并非比較各種組件式框架。但好說歹說,JSF是J2EE的一部分,組件還在不斷擴展和完善中,既然它是J2EE 5.0的實現標準,其潛力還是巨大的,它將像JSP一樣,你可以只是比較淡漠的關心它,但JSF還是會向著它的方向進發,不管你喜歡與否。
JSF同其它的框架一樣,是平等的。它成一種標準,意味著用戶與實現者都有一個共同遵循的平臺。如果JSF遵循共同的規范,則你可以想象JSF的運行機制。如果不是,則可以不用考慮它了。
JSF存在的問題是可以解決的,也正在被解決。已經出現了一些組件集,Facelets取代JSP,使得Web頁面的模板化更加容易,將帶來更快更簡潔的性能。JSF2.0專家團的成立,將會把Java EE的簡單模型帶給JSF。同時,相關的文檔將會更新與修訂,同時將會有新書出版(不僅僅只是關注Jboss使用JSF開發的Seam項目)。當筆者在抱怨JSF的同時,作為開發人員,也在努力尋找解決問題的辦法。如下是筆者的一些初步看法:
1. 使用facelets來代替JSP。
2. 盡量使用ADF或Seam,而少用或不用RI或myfaces。
3. 結合Spring來增強JSF的擴展性。
4. 別再抱怨JSF,畢竟它只是一個標準規范,而不是一種具體的實現框架。
【編輯推薦】






















