为什么要使用 JSF ?
JSF 是一个基于组件的框架,具有以下部分:
- 一组预先定义的 UI 组件
- 事件驱动的编程模型
- 组件模型,允许增加第三方组件
- JSF 不仅仅是基于组件的 Web 框架,还是 Java EE 标准视图层。
优点:
- 基于标准的多种实现
- JSF2.0 改进了 JSF1.x
Facelets 标签
在 JSF1.x 中,作为 Facelets 本来是作为基于 JSP 视图的一种替代技术。在 JSF2.0 中, Facelets 取代了 JSP 成为 JSF 的缺省的视图技术。
除了具有更好的视图处理功能, Facelets 还支持模板化标签以及其他目的。
Facelets 标签可以分为如下几类:
- 包含来自于其它 XHTML 页面的内容( ui : include )
- 从模板构建页面( ui : composition , ui : decorate , ui : insert , ui : define , ui : param )
- 不通过 Java 代码创建定制组件( ui : component , ui : fragment )
- 其它实用工具( ui : debug , ui : remove , ui : repeat )
要使用 Facelets 标签,必须在 JSF 页面中添加以下命名空间声明:
< html xmlns = "http://www.w3.org/1999/xhtml" xmlns:h = "http://java.sun.com/jsf/html" xmlns:f = "http://java.sun.com/jsf/core" xmlns:ui = "http://java.sun.com/jsf/facelets" > < h:head > |
下表列出了 Facelets 标签的简要描述:
Tag | 描述 |
ui:include | 包含来自于另一个 XML 文件的内容 |
ui:composition | 不使用 template 属性时, composition 代表可以在任意位置插入的元素序列。 composition 可以包含不同的部分(通过 ui:insert 指明) 当使用 template 属性时,模板被加载。这个标签的子元素决定模板中可变化的部分。模板的内容替换这个标签。 |
ui:decorate | 不使用 template 属性时, ui : decorate 指明页面中哪些部分可以被插入。可变化的部分由 ui : insert 子元素指明。 当使用 template 属性时,模板被加载。这个标签的子元素决定模板中可变化的部分。 |
ui:define | 定义被插入到模板中的内容,通过 ui : insert 匹配 |
ui:insert | 将内容插入到模板。内容被定义在加载模板的标签内部 |
ui:param | 指明被传递到一个包含文件或模板的参数 |
ui:component | 与 ui : composition 相同,除了它可以创建一个被添加到组件树中的组件 |
ui:fragment | 与 ui : decorate 相同,除了它可以创建一个被添加到组件树中的组件 |
ui:debug |
|
ui:remove | JSF 移除 ui : remove 标签内部的 everything |
ui:repeat | 迭代 list 、 array 、 resultset 或单个对象 |