JSF, MyFaces, RichFaces 和 Facelets的区别

初学JavaEE时很多东西都没理解,只是一股脑地往大脑里灌,现在是到明确一下的时候了。


JSF(JavaServer Faces)

JSF是一套用于构造 基于组件Web应用界面规范
需要着重强调的是,JSF是一套规范,即由人(JCP)规定好了这项技术应该包括哪些功能的一份说明,是抽象的概念。 我们通常所讲的Web应用,指的是基于B/S架构的软件,通俗一点就是你打开浏览器看到的东西 (包括浏览器本身) 。而Web应用的界面(interface),就是指的html, css , javasscript,它们决定了浏览器应该怎样渲染(显示)页面。那什么是基于组件呢?比如JSF的outputText标签,它本质上并不是标签,而是一个组件。outputText对应着一个Java类 --- OutputText,由OutputText类负责将h:outputText标签翻译成html标签,即span,或直接将value值输出。

MyFaces

既然JSF是一套规范,那就得有人去实现规范,这样才能出能用的东西。这就类似于Java中接口和其实现类的关系。而MyFaces就是Apache对JSF规范的具体实现。

RichFaces

RichFaces是JBoss为JSF开发的一个组件库(component library),是JSF的一个扩展,为JSF提供了更多的功能(组件)。例如a4j:outputPanel,这是JSF规范中没有定义的,是RichFaces额外提供的组件。

Facelets

Facelets是一个 模板系统,是创建JSF应用时的一个可选的视图处理技术(View Hander)。在JSF2.0之前默认使用的是JSP作为表现层技术,2.0以后使用Facelets。

你可能感兴趣的:(JSF, MyFaces, RichFaces 和 Facelets的区别)