Facelets 标签参考
lxm翻译自《Facelets Essentials: Guide to JavaServer™ Faces View Definition Framework 》
不当之处欢迎指正。
这标签是开发程序时很有用的工具。在 launched 的时候通过按组合健 Ctrl + Shift + < 热键 > ( 默认是 D) ,将显示一个弹出窗口,在里面显示组件树和局部变量,表格 1-6 列出它的属性。
表格 1-6: <ui:component> 标签属性
属性名称 |
必需 |
描述 |
hotkey |
否 |
热键, 默认是 D 。 |
rendered |
否 |
boolean 值,指定是否显示 . |
通常,可以在页面的末尾找到 debug 标签 , 但它可以定义在任何位置,可以定义 如下 :
<ui:debug hotkey="g"
rendered="#{initParam[‘apress.DEBUG_MODE’]}"/>
这样 , 按 Ctrl + Shift + G 就可以弹出调试窗口,在 initParam[‘apress.DEBUG_MODE’] 中指定是否显示。
<ui:param/> 用来在 Facelets 之间用名字变量传递对象。 下列表格列出它的属性。
表格 : <ui:param> 标签属性
属性名称 |
必需 |
描述 |
name |
是 |
传递给被包含文件或是模板文件的变量的名称 . |
value |
是 |
用简单或 EL 表达式的值给名字变量赋值。 |
举例:
Listing 1-17. param-details.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition>
<div>
<h3>#{birdName}</h3>
Order: #{birdOrder}
<br/>
Family: #{birdFamily}
</div>
</ui:composition>
</body>
</html>
在下面文件中引用前面定义的模板文件
Listing 1-18. param-example.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD ¬
XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/ ¬
xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:include src="param-details.xhtml">
<ui:param name="birdName" value="Parrot"/>
<ui:param name="birdOrder" value="Psittaciformes"/>
<ui:param name="birdFamily" value="Psittacidae"/>
</ui:include>
<ui:decorate template="param-details.xhtml">
<ui:param name="birdName" value="Eagle"/>
<ui:param name="birdOrder" value="Falconiformes"/>
<ui:param name="birdFamily" value="Accipitridae"/>
</ui:decorate>
</body>
</html>
产生如下输出:
<div>
<h3>Parrot</h3>
Order: Psittaciformes
<br />
Family: Psittacidae
</div>
<div>
<h3>Eagle</h3>
Order: Falconiformes
<br />
Family: Accipitridae
</div>
<ui:remove> 用来在在编译时移除代码块,它没有属性,可以在 jsfc 的属性中指定。
例如:
<ui:remove>
This will be removed.
</ui:remove>
This will survive
<div jsfc="ui:remove">
This will be removed too
<h:outputText value="#{backingBean.andThisToo}"/>
</div>
And this will survive too!
产生如下输出:
This will survive
This will survive too!
<ui:repeat/> 用来跌代一个对象列表。推荐用 JSTL 核心标签库中的 c:forEach 代替。不作介绍。