我刚刚开始使用JSF,我有三个与JSF实现和组件库相关的问题
JSF实现和组件库有什么区别?
可用的各种JSF实现(如Apache MyFaces)有哪些,它们之间的区别是什么?
可用的各种JSF组件库(如富脸和冰面)有哪些?它们之间有什么区别?
提供相关信息的任何相关链接也会有所帮助。
答案 0 :(得分:89)
JSF实现和组件库有什么区别?
JSF实现实现 JSF API Specification。它们至少包含standard components以显示任何可用的基本(“普通香草”)HTML元素。
JSF组件库只是在基本实现之上添加额外的,通常具有更多的可换肤性,可扩展性,可增强性等等,因此您只需使用单个组件而不是一堆组件对其进行编程组件或自定义组件,最后还有一堆相关的JS / CSS代码。
可用的各种JSF实现(如Apache MyFaces)有哪些,它们之间有什么区别?
目前有两个(主要)JSF实现,即Oracle Mojarra和Apache MyFaces。技术上没有多大区别,因为它们都必须遵守JSF API规范。而是关注稳健性,文档可用性,支持级别,维护级别(增强速度,错误修正,发布等)等等。另见:Difference between Mojarra and MyFaces
可用的各种JSF组件库(如富脸和冰面)有哪些?它们之间有什么区别?
它们很多,我将自己限制在最常用/众所周知的库中。如果您想要更多的蒙皮功能,请查看PrimeFaces(demo),RichFaces(demo)或ICEFaces(demo)。如果你想要更多的ajaxical功能(除了JSF 2.0已经提供的功能),请查看PrimeFaces,RichFaces,ICEFaces,OpenFaces(demo)或Trinidad(demo)。如果您想要更专业/增强的组件,请查看PrimeFaces,RichFaces,ICEFaces,OpenFaces,Trinidad或Tomahawk(demo)。差异主要在于可用的组件集和可定制程度。
此外,还有一个JSF实用程序库。您可能会认识到自己每次重新/重写一些FacesUtil
,JSFUtils
等类和/或自定义标记/组件来解决典型的和反复出现的JSF特定问题。 OmniFaces(demo)旨在通过提供可重用的JSF实用程序标准库来填补这一空白,该库可以与每个JSF实现和组件库结合使用。
答案 1 :(得分:3)
实现是实现JSF规范的东西。组件库可以为基本规范添加额外的功能(通常是额外的UI小部件)。
我认为主要区别在于标准合规性。据我所知,Glassfish是唯一一个完全支持作为Java EE 6一部分发布的新JSF标准的应用服务器。
抱歉,我不确定最后一个问题。