JSF实现和组件库

我刚开始使用JSF,我有三个与JSF实现和组件库相关的问题

  1. JSF实现和组件库有什么区别?

  2. 什么是可用的各种JSF实现(如Apache MyFaces)?它们之间有什么区别?

  3. 什么是可用的各种JSF组件库(如丰富的面孔和冰面),它们之间有什么区别?

任何相关的链接提供确切的信息也将是有益的。

JSF实现和组件库有什么区别?

JSF实现实现了JSF API规范 。 它们至less包含显示任何可用的基本(“普通香草”)HTML元素的标准组件 。

JSF组件库只是在基本实现的基础上增加了额外的function,通常具有更多的skinnability,ajaxability,可升级性等等,这样你就可以用单个组件编程,而不是一堆组件或定制组件,一堆相关的JS / CSS代码。


什么是可用的各种JSF实现(如Apache MyFaces)?它们之间有什么区别?

至less有两个(主要的)JSF实现,即Oracle Mojarra和Apache MyFaces 。 技术上差别不大,因为他们都必须遵守JSF API规范。 而是看看健壮性,文档的可用性,支持水平,维护等级(增强速度,错误修正,释放等)等等。 另请参阅: Mojarra和MyFaces之间的区别


什么是可用的各种JSF组件库(如丰富的面孔和冰面),它们之间有什么区别?

有很多,我会限制自己最常用/着名的图书馆。 如果你想要更多的皮肤function,看看PrimeFaces ( 演示 ), RichFaces ( 演示 )或ICEFaces ( 演示 )。 如果你想要更多的Ajaxfunction(除了JSF 2.0已经提供的function),看看PrimeFaces,RichFaces,ICEFaces, OpenFaces ( 演示 )或Trinidad ( 演示 )。 如果你想要更专业/增强的组件,请看PrimeFaces,RichFaces,ICEFaces,OpenFaces,Trinidad或Tomahawk ( demo )。 主要区别在于可用的一组组件和可定制程度。

此外还有一个JSF实用程序库。 您可能会认识到自己每次重新创build/重写一些FacesUtilJSFUtils等类和/或定制标记/组件来解决典型和反复发生的JSF特定问题。 OmniFaces ( demo )旨在通过提供可重复使用的JSF实用程序标准库来填补这一空白,JSF实用程序可与每个JSF实现和组件库结合使用。

一个实现是实现JSF规范的东西。 一个组件库是增加额外的function(通常是额外的UI小部件)的基本规范的东西。

我认为主要的区别是标准合规。 据我所知,Glassfish是唯一完全支持作为Java EE 6一部分发布的新JSF标准的应用程序服务器。

对不起,我不确定最后一个问题。