Primefaces框架开发杂谈!

使用Primefaces正式开发商用的项目算起来已经有1年半了,现在是时候该进行一下总结了,以便与国内正在使用或潜在使用Primefaces进行开发的各位进行更多的交流与分享。

首先介绍一下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。

1、为何不选用Struts2或JSF其他的框架(例如:Icefaces、richfaces等)?

当时项目开发周期比较紧,项目组没有美工 如果使用Struts2进行开发那还需要耗费大量的时间在界面设计开发上;因为之前在一家外企开发美国医疗的项目时展示层框架是用的ICEfaces所以本人对JSF也还算熟悉,而JSF是以组件形式进行展示且可以进行更换或定制皮肤,熟悉使用之后可快速拿来即用。为何最终选用Primefaces而不是ICEfaces是因为个人觉得PF的官方对技术支持的要比ICEfaces好很多,这样在开发时遇到什么问题可以得到官方的帮助。

2、PF有何优劣势?

优势:

  1. 组件式、拿来即用,熟悉之后可进行快速开发;
  2. PF技术支持的也非常不错,有自己官方的BLOG和论坛;
  3. 官方有提供多种界面皮肤,可以省去大部分界面开发的时间;
  4. 轻量级,仅仅有一个JAR包,无任何其他JAR包依赖;
  5. 框架中已经集成了jQuery,无需再引入jQuery脚本而可以直接使用jQuery脚本;
  6. 与Spring可以非常好的结合;
  7. 有Mobile版本,可支持iPhone, Android, Palm, Blackberry, Windows Mobile等众多类型的手机。

劣势:

  1. 对于国内的大部分开发者来说没有中文文档,是其最大的劣势;
  2. 虽然官方有皮肤样式但都相对来说比较丑陋,还需自己进行定制;
  3. 完全不支持IE6,部分版本对IE7的兼容性也不是那么尽如人意,这对国内还有众多IE6的用户来说无遗是一个灾难。

3、使用PF开发时有无遇到什么困难或问题?

在开发过程中肯定会或多或少的遇到各种问题,相信不管是谁在使用一门新的技术时都会遇到不同的问题,但快速解决问题是关键;用PF开发时遇到的最大的问题就是因为界面兼容性,当系统开发完后由于我大部分时间是使用MAC OS 浏览器使用的是Firefox,而其他同事的浏览器不是IE8就是IE9或者IE7,由于项目的周期较短 花了大量的时间用于功能性测试 但到了客户现场进行部署完之后发现问题来了,客户大部分使用的都是IE6或360浏览器(当时360浏览器内核也都是基于IE6的) 在IE6上面显示的效果非常的差导致给客户的第一印象很不好,还好最终在与客户的协商下进行IE版本升级从而解决了这个问题。


时间原因暂时先写这些,上述内容纯属个人观点,如大家有任何疑问或问题欢迎留言咨询,当然如果有人愿意一起推动Primefaces在国内的应用更好。^_^ Good Luck!

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
PrimeFaces主要标签学习。 1 PrimeFaces综述 3 1.1 安装 3 1.2 配置,JSF2.0环境下用PrimeFace2.x 4 1.3 Hello World入门示例 4 1.4 UI组件: 4 2 UI组件 5 2.1 布局 5 2.1.1 Layout 页面布局 5 2.1.2 Panel用于包含其它组件,提供象windows窗口式的外观。 8 2.1.3 TabView 分页式面板组件 8 2.1.4 OutputPanel 仅用于显示元素 9 2.1.5 Fieldset 9 2.1.6 Dashboard 仪表盘 10 2.1.7 Themeswitcher 主题切换器,动态切换主题 11 2.1.8 Separator空白分隔区域 11 2.1.9 Spacer行内加空格 11 2.2 菜单 11 2.2.1 Menu 11 2.2.2 Menubar 12 2.2.3 MenuButton 13 2.2.4 Toolbar 13 2.2.5 Stack :堆叠式菜单(竖向) 13 2.2.6 Dock :动画鱼眼式菜单(横向) 14 2.3 按钮: 15 2.3.1 Button 15 2.3.2 CommandButton 15 2.3.3 CommandLink 17 2.3.4 ContextMenu 17 2.3.5 HotKey 17 2.4 输入组件 18 2.4.1 文本输入 18 2.4.1.1 Editor 18 2.4.1.2 Password 19 2.4.1.3 Password Strength 19 2.4.1.4 inputMask 输入掩码,实现格式化输入。 19 2.4.1.5 InputText 20 2.4.1.6 InputTextarea 20 2.4.1.7 Watermark :文本输入内容提示 20 2.4.1.8 Keyboard 显示一个虚拟键盘,用以支持输入字符。 21 2.4.1.9 Inplace 替换文本 22 2.4.2 选择式输入 22 2.4.2.1 AutoComplete :自动补全 22 2.4.2.2 PickList 选择列表 25 2.4.2.3 Slider 滑动条 26 2.4.2.4 Spinner 27 2.4.3 其它格式数据的输入: 27 2.4.3.1 Spreadsheet电子表格 27 2.4.3.2 Calendar 各种格式的日期输入与显示 28 2.4.3.3 Schedule 日程计划输入组件 31 2.4.3.4 Captcha :变形字符验证 31 2.4.3.5 Color Picker 32 2.5 集合(复杂格式)数据的输出与显示: 33 2.5.1 BreadCrumb :层次化页面导航条 >…>….> 33 2.5.2 Accordion:一个容器组件,它用tab动态地显示折叠或展开过程。 34 2.5.3 Carousel:多用途,标签式、分布式显示 35 2.5.4 Galleria 图片陈列廊 36 2.5.5 LightBox :图片加亮显示 37 2.5.6 DataGrid 数据栅格 37 2.5.7 DataList 用列表的形式显示数据,每个栅格可显示多个数据项 39 2.5.8 DataTable数据表格 41 2.5.9 Tree 树形显示 46 2.5.10 TreeTable 树表 47 2.5.11 DragDrop 50 2.5.11.1 Draggable组件: 50 2.5.11.2 Droppable组件 51 2.5.12 Charts基于flash的图形生成与显示 52 2.6 数据导出: 54 2.6.1 Data Exporter 54 2.6.2 Printer 56 2.7 状态: 56 2.7.1 ProgressBar 56 2.7.2 NotificationBar 57 2.8 对话框: 58 2.8.1 ConfirmDialog 58 2.8.2 Dialog 58 2.9 图形图像多媒体: 59 2.9.1 ImageCompare :提供丰富的接口比较两副图像 59 2.9.2 Graphic Text 文本图象化显示 60 2.9.3 ImageCropper 60 2.9.4 ImageSwitch 61 2.9.5 Google Maps 地图 61 2.9.6 Dyna Image 63 2.9.7 Media 65 2.9.8 Star Rating 65 2.9.9 Wizard: 66 2.10 消息: 66 2.10.1 Growl Mac风格的消息显示 66 2.10.2 Message/Messages 67 2.10.3 Tooltip 67 2.11 文件处理: 67 2.11.1 FileUpload 上传文件 67 2.11.2 FileDownload 下载文件 69 2.11.3 IdleMonitor 屏幕凝滞 70 2.11.4 Terminal 70 2.12 辅助功能(辅助其它JSF组件,给它们添加新的功能和行为): 71 2.12.1 Ajax Engine 71 2.12.2 Ajax Poll轮询 72 2.12.3 Ajax远程调用p:remoteCommand 72 2.12.4 Ajax Status 显示ajax后台运行状态。 72 2.12.5 Focus 73 2.12.6 Effect: 73 2.12.7 Collector : 74 2.12.8 Resizable 给任何JSF组件添加可调整大小的行为。 74 2.12.9 RequestContext : 75 3 TouchFaces 76 3.1.1 移动UI工具 76 3.1.2 Ajax Push/Comet 77 3.1.3 几分钟实现聊天应用: 78 4 附录 79 4.1 全部UI组件列表 84 4.2 PrimeFaces常用属性集 85

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

無名VF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值