PrimeFaces 3.0 发布:面向 JSF2 的 Ajax、移动与 IE 9 组件

  • Kostis Kapelonis
  • 张龙

2012 年 5 月 17 日

话题:JavaWeb框架开源HTML5语言 & 开发架构

PrimeFaces是个面向JSF2的开源组件,提供了大量的 Ajax 控件。它提供了应用开发者所需的常规组件,如数据表可折叠窗格自动完成页签等。此外,它还提供了其他一些特别以及有趣的组件,这些组件是其竞争者所没有的,如:

除了上述这些组件外,PrimeFaces 还提供了图片比较标签云生成、甚至是OS X 风格栈的实现。根据Prime Teknoloji(PrimeFaces 背后的公司)所述,之所以存在这种多样性,原因之一在于该公司并非软件厂商。它实际上是个咨询公司,帮助其客户更好地使用 PrimeFaces。

这正是 PrimeFaces 区别于其竞争者的一个主要特质,因为 Prime Teknoloji 既是库的生产者,同时当其代表其客户时,它又成为了库的使用者。这对于核心开发有着非常重要的影响,因为重要的 Bug 需要尽快修复才行。保持库的轻量级与可使用性也是 PrimeFaces 的一个主要目标,因为任何偏差都会被 Prime Teknoloji 的客户立刻察觉到。

PrimeFaces 还提供了PrimeFaces Mobile,这是面向 iPhone/Android 的一个版本(基于jQuery Mobile)。

InfoQ 有幸采访到了项目领导?a?atay ?ivici 以深入了解此次发布的相关信息:

InfoQ:Primefaces 3.x 有哪些新特性?

PrimeFaces 3 的开发持续了近一年时间,与 2.x 相比,3 提供了各种新组件、重新实现了之前的一些组件、对内部进行了增强以提升性能、优化了资源加载、提供了更加灵活的 Ajax 行为回调等。总而言之,你可以将 PrimeFaces 2.x 看作是 PrimeFaces 1.x(针对 JSF 1.2)针对 JSF 2.0 的移植。

InfoQ:该版本与 Primefaces 2.x 之间的兼容性如何?迁移很方便么?你们是否还会支持 Primefaces 2.x 并修复其 Bug 呢?

迁移不难,但也没那么容易,这主要是因为我们通过Ajax 的行为事件来实现的组件回调。对于我们来说,PrimeFaces 3.x 是个重要的里程碑。这正是为何其开发时间持续了近一年的一个原因,因为这是进行重要变更的一个机会。从 PrimeFaces 3 开始,框架将会更加稳定。

InfoQ:Primefaces 能与其他 JSF 库混合使用么(比如说IceFaceRichfaces)?

我们从来没有将 PrimeFaces 与其他库混合使用过,但我们的用户这么做过。PrimeFaces 与 RichFaces 都使用了jQuery,因此在每个页面上只要通过二者之一包含进 jQuery,那么就可以同时使用他们了。至于 IceFaces,我们不清楚是否有用户同时使用过他们,这可能是由于IceFaces D2D 方式的本质所决定的。

InfoQ:HTML5 对于你们来说有多重要?添加 HTML5 支持会很方便么?

HTML5 对于我们来说是非常重要的,因为它为我们提供了一个开发环境以使用上 PrimeFaces 中的富特性。我们通过优雅降级的方式将 HTML5 集成到了 PrimeFaces 中,比如说fileUpload组件支持 Ajax 上传、多文件选择、从文件系统中拖拽文件上传,但在不支持 HTML5 的浏览器中,它使用了 iframe 进行传输。此外,图表组件使用了HTML5 canvas 元素。我们还大量使用了data-* 特性。对于PrimeFaces Push来说,它是通过WebSockets实现的。

InfoQ:当前的开发目标是什么?PrimeFaces 4 有哪些值得期待的特性呢?

目前还没有 PrimeFaces 4 的计划,我们还会继续在 PrimeFaces 3.x 上花一些时间。目前,PrimeFaces 3.1的发布中有 7 个新组件、很多组件都增加了不少新特性,同时还进行了大量的维护工作。我们的路线图是交付用户最希望得到的特性、交付我们自己的想法,当然了,还有对库的质量的改进。在我们决定开发 PrimeFaces 4 时,一定是有某些特别的缘由的。

InfoQ:对于大小版本的发布计划是怎样的?

从 PrimeFaces 3.x 开始,我们计划每月发布,因此我们打算每个月都发布一个新的 PrimeFaces 3.x 迭代版。

Java artifacts 目前还不在 Maven Central 中,只在PrimeFaces Repository(Prime Teknoloji 目前正在解决这个问题)中。要想了解更多信息,请参阅参考文档论坛Wiki。其源代码托管于Google code上。

查看英文原文:PrimeFaces 3.0 Released: Ajax, Mobile and IE 9 Components for JSF2

JavaWeb框架开源HTML5语言 & 开发架构