使用Primefaces正式開發商用的項目算起來已經有1年半了,如今是時候該進行一下總結了,以便與國內正在使用或潛在使用Primefaces進行開發的各位進行更多的交流與分享。 html
首先介紹一下Primefaces是何物:Primefaces(以 下簡稱:PF)是JSF衆多框架之一,由一家土耳其公司研發與維護的,且如今使用其開發的項目愈來愈多 據官方介紹2012年已經超過icefaces和richfaces了,PF現現在已儼然成爲衆多JSF開發者喜好的框架 就如Icefaces這種JSF大牛級的框架在3.0版本中都有大量抄襲PF的代碼(據PF官網介紹抄襲度達到90%),很是有意思的是因爲 ICEfaces的抄襲 其已經被歸入到PF的使用客戶列表了。更爲詳細的PF介紹請移步至其官網:http://www.primefaces.org/whyprimefaces.html。 瀏覽器
最先接觸PF是在2010年時,因爲本人對開源的項目比較感興趣 閒來無事就去研究研究這個、看看那個 當時僅僅知道其表面的東西,但這偏偏給我提供了後來在實際項目技術選型時作了很好的鋪墊。2011年4月份時須要從頭開發一個項目,當初在使用這個框架的 時候國內幾乎沒什麼相關的資料,並且說句實在話 PF當時(2.2.1版本)作的並非那麼的盡如人意 跟其餘的JSF框架相比還有很大的上升空間(不論是穩定性仍是擴展性或是其餘各方面),但通過不斷的升級、改進如今最新版本已經到3.4.1了且比之前穩 定了許多,但在追隨其升級版本也是一件很是痛苦的事情 尤爲是從2升到3時 重構了許多方法 最典型的就是<p:datatable/>中動態加載數據,如今項目中用的版本爲3.1.1,沒有更新到最新版本是由於項目比較緊沒時間去升 級了,若是升級的話 升完後還得須要詳細的進行測試 以避免由於升級帶來部分功能沒法使用。 架構
接下來說講當初爲什麼選擇PF做爲展現層框架進行開發: 框架
項目基礎架構採用了Primefaces + Spring Security + Spring3.0 + Hibernate3.5.6。 測試
一、爲什麼不選用Struts2或JSF其餘的框架(例如:Icefaces、richfaces等)? 設計
當時項目開發週期比較緊,項目組沒有美工 若是使用Struts2進行開發那還須要耗費大量的時間在界面設計開發上;由於以前在一家外企開發美國醫療的項目時展現層框架是用的ICEfaces因此 本人對JSF也還算熟悉,而JSF是以組件形式進行展現且能夠進行更換或定製皮膚,熟悉使用以後可快速拿來即用。爲什麼最終選用Primefaces而不是 ICEfaces是由於我的以爲PF的官方對技術支持的要比ICEfaces好不少,這樣在開發時遇到什麼問題能夠獲得官方的幫助。 htm
二、PF有何優劣勢? 開發
優點: 文檔
劣勢: 部署
三、使用PF開發時有無遇到什麼困難或問題?
在開發過程當中確定會或多或少的遇到各類問題,相信不論是誰在使用一門新的技術時都會遇到不一樣的問題,但快速解決問題是關鍵;用PF開發時遇到的最大 的問題就是由於界面兼容性,當系統開發完後因爲我大部分時間是使用MAC OS 瀏覽器使用的是Firefox,而其餘同事的瀏覽器不是IE8就是IE9或者IE7,因爲項目的週期較短 花了大量的時間用於功能性測試 但到了客戶現場進行部署完以後發現問題來了,客戶大部分使用的都是IE6或360瀏覽器(當時360瀏覽器內核也都是基於IE6的) 在IE6上面顯示的效果很是的差致使給客戶的第一印象很很差,還好最終在與客戶的協商下進行IE版本升級從而解決了這個問題。
時間緣由暫時先寫這些,上述內容純屬我的觀點,如你們有任何疑問或問題歡迎留言諮詢,固然若是有人願意一塊兒推進Primefaces在國內的應用更好。^_^ Good Luck!