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呢?
\\t迁移不难,但也没那么容易,这主要是因为我们通过 Ajax的行为事件来实现的组件回调。对于我们来说,PrimeFaces 3.x是个重要的里程碑。这正是为何其开发时间持续了近一年的一个原因,因为这是进行重要变更的一个机会。从PrimeFaces 3开始,框架将会更加稳定。\
InfoQ:Primefaces能与其他JSF库混合使用么(比如说IceFace与Richfaces)?
\\t我们从来没有将PrimeFaces与其他库混合使用过,但我们的用户这么做过。PrimeFaces与RichFaces都使用了 jQuery,因此在每个页面上只要通过二者之一包含进jQuery,那么就可以同时使用他们了。至于IceFaces,我们不清楚是否有用户同时使用过他们,这可能是由于 IceFaces D2D方式的本质所决定的。\
InfoQ:HTML5对于你们来说有多重要?添加HTML5支持会很方便么?
\\tHTML5对于我们来说是非常重要的,因为它为我们提供了一个开发环境以使用上PrimeFaces中的富特性。我们通过优雅降级的方式将HTML5集成到了PrimeFaces中,比如说 fileUpload组件支持Ajax上传、多文件选择、从文件系统中拖拽文件上传,但在不支持HTML5的浏览器中,它使用了iframe进行传输。此外, 图表组件使用了 HTML5 canvas元素。我们还大量使用了 data-*特性。对于 PrimeFaces Push来说,它是通过 WebSockets实现的。\
InfoQ:当前的开发目标是什么?PrimeFaces 4有哪些值得期待的特性呢?
\\t目前还没有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