使用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!