JSF Facelets语言

Facelets它是一种轻量级页面声明语言, 用于使用HTML样式构建JavaServer Faces视图。
它包括以下功能:

  • 它使用XHTML创建网页。
  • 除了JavaServer Faces和JSTL标记库之外, 它还支持Facelets标记库。
  • 它支持表达式语言(EL)。
  • 它对组件和页面使用模板。
优势
  • 它通过模板和复合组件支持代码可重用性。
  • 它通过自定义提供组件和其他服务器端对象的功能可扩展性。
  • 更快的编译时间。
  • 它在编译时验证表达式语言。
  • 高性能渲染。
JavaServer Faces技术支持各种标记库以将组件添加到网页。为了支持JavaServer Faces标记库机制, Facelets使用XML名称空间声明。
下表显示了Facelets支持的标签库。
标签库 URI 字首 内容
JavaServer Faces Facelets标记库 http://xmlns.jcp.org/jsf/facelets ui: ui:组件ui:insert 模板标签
JavaServer Faces HTML标记库 http://xmlns.jcp.org/jsf/html h: h:head h:body h:outputText h:inputText 所有UIComponent对象的JavaServer Faces组件标签
JavaServer Faces核心标签库 http://xmlns.jcp.org/jsf/core f: f:actionListener f:attribute 独立于任何特定渲染工具包的JavaServer Faces自定义操作的标签
直通元素标签库 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函数标签
Facelets应用程序的生命周期JavaServer Faces规范定义了JavaServer Faces应用程序的生命周期。以下步骤将描述过程描述给基于Facelets的应用程序。
1)当客户端对使用Facelets创建的网页提出新请求时, 生命周期开始。 JSF创建一个新的组件树或javax.faces.component.UIViewRoot并将其放置在FacesContex中。
【JSF Facelets语言】2)视图已准备好填充要渲染的组件。 UIViewRoot(如果可用)应用于Facelets。
3)新建的视图作为对客户端的响应被呈现回去。
4)在渲染时, 将为下一个请求存储此视图的状态。输入组件和表单数据的状态被存储。
5)客户端可以与视图交互, 并从JavaServer Faces应用程序请求另一个视图。此时, 已保存的视图从已存储状态恢复。
6)恢复的视图再次通过JavaServer Faces生命周期, 如果没有验证问题且未触发任何操作, 则最终将生成新视图或重新渲染当前视图。
7)如果请求相同的视图, 则再次渲染存储的视图。
8)如果请求新视图, 则继续执行步骤2。
9)将新视图作为对客户端的响应重新呈现。

    推荐阅读