【转载】http://lalalabs.blog.163.com/blog/static/943252022009113693235/
ui:composition
UI Composition标签是一个模板标签,它包装的内容被列在另一个Facelet中。任何UI Composition标签外的内容会被Facelets 视图处理器忽略。当另一个Facelets页面包含了具有UI Composition标签的页面时,任何 UI Composition标签内的内容会被列入。
ui:define
ui:define标签是一个模板标签,它定义插入到一个模板的命名内容。name属性的值必须与目标模板中的用于插入命名内容的 ui:insert标签的值相匹配 。
ui:insert
ui:insert标签是一个模板标签,它声明了一个被另一个Facelet定义的命名内容元素。 可以有效地利用它和ui:define标签在Facelets之间传值。
提示: 如果template属性指定了一个模板文件,包含了UI Composition标签的页面会显示相关联的模板页面的内容。如果UI Composition标签包含了ui:define标签,其内容会被插入到模板文件中相应的ui:insert标签位置。 模板页面可以使用一个无名的ui:insert标签,用于插入UI Composition标签内的所有内容。
ui:include
UI Include标签是一个用于Facelets的服务边包含标签。它只是包含由"src" 属性指定的文档作为当前页面的一部分。被包含的文档应该使用一个component或composition标签,削减不必要的标记,也可以只包含XHTML或被包括的XML的片断。
ui:param
ui:param标签用于页面之间的参数传送。
例子:
1.home.xhtml
<ui:composition …… template="layout/template.xhtml">
<ui:define name="body">
<h1>Welcome to Seam!</h1>
……
</ui:define>
</ui:composition>
2.template.xhtml
<f:view …… contentType="text/html">
<html>
<head>
……
</head>
<body>
<ui:include src="menu.xhtml">
<ui:param name="projectName" value="regist"/>
</ui:include>
<div class="body">
……
<ui:insert name="body"/>
</div>
<div class="footer">
……
</div>
</body>
</html>
</f:view>
3.menu.xhtml
<rich:toolBar …… >
<rich:toolBarGroup>
<h:outputText value="#{projectName}:"/>
<s:link id="menuHomeId" view="/home.xhtml" value="Home" propagation="none"/>
</rich:toolBarGroup>
<rich:toolBarGroup location="right">
<h:outputText id="menuWelcomeId" value="signed in as: #{credentials.username}" rendered="#
{identity.loggedIn}"/>
<s:link id="menuLoginId" view="/login.xhtml" value="Login" rendered="#{not identity.loggedIn}"
propagation="none"/>
<s:link id="menuLogoutId" view="/home.xhtml" action="#{identity.logout}" value="Logout" rendered="#
{identity.loggedIn}" propagation="none"/>
</rich:toolBarGroup>
</rich:toolBar>
ui:repeat
ui:repeat标签被用来迭代对象集,它由值绑定EL表达式暴露给JSF的。 目的是替换JSTL核心标签库的c:forEach标签。你也可以在Facelets中利用"jsfc" 功能使用这个标签。
例子:
<ul>
<ui:repeat value="#{myBean.products}" var="product">
<li><h:outputText value="#{product.name}" /></li>
</ui:repeat>
</ul>
产生的HTML:
<ul>
<li>Tennis Racquet</li>
<li>Baseball Bat</li>
<li>Hockey Stick</li>
</ul>
ui:remove
ui:remove标签被用来指定Facelets视图处理器在编译时应该从页面删除的标签或内容块。这个标签没有属性。你可以在"jsfc"属性中使用这个标签指明应该从显示的页面中删除的特殊标签。
注意: Facelets编译处理比JSP编译处理快很多 ,在于它不会真正地产生Java字节码,并且当你第一次浏览你的页面时,在幕后进行编译。
例子:
This text will be displayed.
<ui:remove>
This text will be removed.
</ui:remove>
This text will be displayed.
产生的HTML:
This text will be displayed.
This text will be displayed.
ui:fragment
ui:fragment标签插入一个新的UIComponent实例到JSF组件树。在这个标签外的任何组件或内容片断会被Facelets视图处理器纳入,在这个标签内的任何组件或内容片断会被增加到这个组件树,作为这个组件实例的一个孩子。
例子:
This text will be included.
<ui:fragment binding="#{myBackingBean.component}">
</ui:fragment>
<div id="message">Hello World!/div>
This text will be included.
产生的HTML:
This text will be included.
<div id="message">Hello World!/div>
This text will be included.
ui:component
ui:component标签插入一个新的UIComponent实例到JSF组件树。在这个标签外的任何组件或内容片断会被Facelets视图处理器忽略,这个标签内的任何组件或内容片断会被增加到这个组件树,作为这个组件实例的一个孩子。
例子:
This text will be ignored.
<ui:component binding="#{myBean.component}">
<div>Hello World!</div>
</ui:component>
This text will be ignored.
产生的HTML:
<div>Hello World!</div>
ui:decorate
ui:decorate标签是一个模板标签,它修饰来自另一个Facelet包含的内容。 在这个标签外的任何内容会被Facelets视图处理器显示。 在这个标签内的任何内容会被传递给相关联的模板作为参数或完全忽略。 你可以使用嵌套的ui:define标签传递命名内容给相关联的模板。详情见ui:insert标签。
模板提示:
包含decorate标签的页面的内容被用来填充关联的模板页面。如果decorate标签包含了ui:define 标签,这些标签的内容会被插入到模板中找到的相匹配的ui:insert的位置。你可以使用一个无名的ui:insert标签把所有composition标签的内容插入到模板页面内。
例子:
template.jsf:
This text will be removed.
<ui:composition>
<h2><ui:insert name="title" /></h2>
<ui:insert name="body" />
</ui:composition>
This text will be removed.
decorate.jsf:
Text before will stay.<br />
<ui:decorate template="template.jsf">
<ui:define name="title">Our Products</ui:define>
<ui:define name="body">
<ul>
<li>Apples</li>
<li>Oranges</li>
<li>Bananas</li>
</ul>
</ui:define>
</ui:decorate>
Text after will stay.
产生的HTML:
Text before will stay.<br />
<h2>Our Products</h2>
<ul>
<li>Apples</li>
<li>Oranges</li>
<li>Bananas</li>
</ul>
Text after will stay.
ui:debug
UI Debug标签允许你在测试你的JSF页面时,在你的浏览器中显示有关JSF组件树和域变量的有用信息。 hotkey属性指定了一个组合键 (CTRL + SHIFT + D ,默认值)用来显示弹出窗口包含的内容。通过设置rendered属性可以启用或禁用UI Debu标签。
例子:
<h:commandButton value="Continue Shopping" action="#{shoppingCartBean.saveCart}">
<ui:debug />
</h:commandButton>
分享到:
相关推荐
- 要深入了解Facelets,可以参考JSF官方文档,以及各种在线教程和论坛讨论。 - MyEclipse的官方文档也提供了关于如何在IDE中使用Facelets的详细指南。 通过这个"facelets_demo"项目,开发者可以亲手实践Facelets...
1. **Facelets基础**:了解Facelets的基本概念和语法,包括如何使用Facelets标签库。 2. **组件化和模板化**:学习如何利用Facelets进行组件化和模板化设计,提高代码的复用性和可维护性。 3. **高级特性**:探索...
此外,JSF2引入了Facelets作为默认的视图层技术,它允许在页面中嵌入表达式语言(EL)和标签,使得页面结构更加清晰,代码更易于维护。 在“JSF标签库快速参考”文档中,你将找到关于这些标签和组件的详细说明,...
JSF的核心是UI组件库,这些组件可以以HTML标签的形式在JSP或Facelets页面中使用。本资料主要针对JSF中的标签进行详细讲解,结合《corejsf》一书,帮助开发者更深入地理解和应用JSF。 在JSF中,标签是构建用户界面的...
JavaServer Faces (JSF) 提供了Facelets作为其默认的视图层技术,Facelets允许开发者创建声明式的UI组件,提供更好的可维护性和性能。 8. JSP脚本元素和指令 JSP页面中的脚本元素(scriptlet、expression、...
本文档旨在为BIMP平台开发者提供一个全面且深入的JSF Facelets标签集参考指南。通过详细介绍这些标签的用途与用法,帮助开发者更好地掌握和利用这些工具来提高Web应用的质量与用户体验。 #### Facelets标签集合概述...
4.5 facelets非模板化标签使用指南 4.5.1 ui:component 4.5.2 ui:fragment 4.5.3 ui:remove 4.5.4 ui:debug 第5章 托管bean与JSF表达式语言 5.1 托管bean概念 5.1.1 简单托管bean示例 5.1.2 初始化托管bean属性 ...
例如,`<a4j:support>`标签可以定义AJAX事件监听器,使得组件能够在特定操作后触发服务器端的方法。 5. **资源管理**:RichFaces有一套资源管理系统,用于管理CSS、JavaScript、图像等静态资源,确保它们正确地被...
4.5 facelets非模板化标签使用指南 4.5.1 ui:component 4.5.2 ui:fragment 4.5.3 ui:remove 4.5.4 ui:debug 第5章 托管bean与JSF表达式语言 5.1 托管bean概念 5.1.1 简单托管bean示例 5.1.2 初始化托管bean属性 ...
**JSF标签库快速参考**是开发者在编写JSF页面时的重要参考资料。JSF提供了丰富的内置标签库,如HTML和Core标签,以及自定义的UI组件标签。这些标签简化了HTML页面的编写,使得开发者可以更专注于业务逻辑。快速参考...
这本书《JavaServer Faces 2.0完全参考手册》应该是全面涵盖了JSF 2.0的核心概念、组件、事件处理、数据绑定以及与其他Java EE技术的集成。 1. **JSF架构**:JSF的核心是一个MVC(模型-视图-控制器)框架,其中视图...
1. **组件库**: JSF提供了一套丰富的UI组件,如按钮、表单、表格等,开发者可以通过简单的XML标签在页面上声明这些组件。 2. **视图(View)**: 视图是用户看到和交互的部分,通常是由JSF组件组成的JSP或Facelets...
5. **更好的开发体验**:Facelets支持自定义标签库和更强大的条件语句、循环等。 **许可证文件:** 1. **THIRDPARTYLICENSEREADME.txt**:通常包含项目中使用的第三方库的许可证信息,确保合规性。 2. **LICENSE-...
这涉及到实现UIComponent及其子接口,并可能涉及Facelet标签库描述符(facelets.taglib.xml)。 5. **数据验证**:JSF提供了内置的验证机制,允许在提交表单前检查用户输入的有效性。通过实现Validator接口或使用...
JSF提供了自定义标签库,这些标签可以用来创建可重用的UI组件,极大地提高了开发效率。 ### 2. MVC模式 - **Model**:负责处理业务逻辑,通常与数据库交互,更新或检索数据。 - **View**:显示用户界面,由JSF组件...
7. **自定义标签和组件**:开发者可以创建自定义的UI组件和标签,扩展JSF的功能。这可以通过实现特定接口或者使用Facelets(JSF 1.2引入的视图技术)完成。 8. **FacesContext**:JSF的上下文对象,包含了当前请求...
Facelets允许开发者使用EL(Expression Language)表达式和JSP标签来创建可重用的组件。 4. **EL(Expression Language)**:EL是JSF中用于访问JavaBean属性的简洁表达式语法,它可以方便地在视图层与模型层之间...
1. **组件库**:JSF提供了一系列预定义的UI组件,如按钮、表单、输入字段等,开发者可以通过XML(通常在Facelets模板中)声明这些组件。 2. **事件和监听器**:当用户与UI交互时,JSF会触发相应的事件,开发者可以...
这些组件可以通过自定义标签在页面上使用,并且可以通过属性和事件进行配置和交互。 3. **Facelets与JSP** JSF默认使用Facelets作为视图表示技术,它比传统的JSP更强大,具有更好的可维护性和模块化特性。Facelets...
3. **自定义标签库**:引入了自定义组件的概念,允许开发者创建自己的UI组件库。 4. **Facelets**:作为一种视图表示技术替代了JSP,使得页面结构更清晰,代码更易维护。 5. **更完善的验证机制**:增加了更多内置...