Facelets是一种轻量级的页面声明语言,用于使用HTML样式构建JSF(JavaServer Faces)视图。
它包括以下功能:
优点
JSF(JavaServer Faces)技术支持各种标签库,以将组件添加到网页。 为了支持JavaServer Faces标签库机制,Facelets使用XML命名空间声明。
下表显示了Facelets支持的标签库。
标签库 | URI | 前缀 | 示例 | 内容 |
---|---|---|---|---|
JSF Facelets标签库 | http://xmlns.jcp.org/jsf/facelets | ui: |
ui:component ,ui:insert |
模板标签 |
JSF HTML标签库 | http://xmlns.jcp.org/jsf/html | h: |
h:head ,h:body |
所有UI组件对象的JavaServer Faces组件标记 |
JSF核心标签库 | http://xmlns.jcp.org/jsf/core | f: |
f:actionListener , f:attribute |
JSF标签独立于任何特定渲染工具包的自定义操作 |
传递元素标签库 | http://xmlns.jcp.org/jsf | jsf: |
jsf:id |
支持HTML5友好标记的标签 |
传递属性标签库 | http://xmlns.jcp.org/jsf/passthrough | p: |
p:type |
支持HTML5友好标记的标签 |
复合组件标签库 | http://xmlns.jcp.org/jsf/composite | cc: |
cc:interface |
支持复合组件的标签 |
JSTL核心标签库 | http://xmlns.jcp.org/jsp/jstl/core | c: |
c:forEach , c:catch |
JSTL 1.2核心标签 |
JSTL函数标签库 | http://xmlns.jcp.org/jsp/jstl/functions | fn: |
fn:toUpperCase , fn:toLowerCase |
JSTL 1.2函数标签 |
JSF规范定义了JavaServer Faces应用程序的生命周期。以下步骤为基于 Facelets 的应用程序的过程描述。
生命周期是在客户端使用Facelets
创建的网页发出新请求时启动。 JSF创建一个新的组件树或javax.faces.component.UIViewRoot
并放入FacesContex
。
如果可用的UIViewRoot
应用于Facelets
, 视图可以填充组件进行渲染。
新建的视图作为对客户端的响应而被渲染。
在渲染时,存储此视图的状态用于下一个请求。 存储输入组件和表单数据的状态。
客户端可以与视图交互,并从JSF应用程序请求另一个视图。 此时,保存的视图从存储状态恢复。
恢复视图再次通过JSF生命周期,如果没有验证问题,并且没有触发任何操作,最终将生成新视图或重新呈现当前视图。
如果请求相同的视图,则再次呈现存储的视图。
如果要求新视图,则继续执行【步骤2】。
将新视图作为对客户端的响应。