`
iamlibo
  • 浏览: 69247 次
社区版块
存档分类
最新评论

Facelets组件

阅读更多

facelets 可以自定义组件,今天看了一下,果然好用。

以前使用facelets只是定义一个界面的模板,并不没有深入它的自定义组件方面的内容,其实它的自定义组件也就是定义一个tag,然后在xhtml中引入这个tag,但这要比普通的JSP方式的tag方便多了。

要想引用自定义的tag要在web.xml中加入下面代码(前提是一定配置好其他的facelets内容)

<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>
/WEB-INF/tld/xiangyun.taglib.xml
</param-value>
</context-param>

xiangyun.taglib.xml文件的内容如下:

<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"https://facelets.dev.java.net/source/browse/*checkout*/facelets/src/etc/facelet-taglib_1_0.dtd">

<facelet-taglib>
<namespace>http://xiangyun.cn/components</namespace>
<tag>
<tag-name>echo</tag-name>
<source>component.jspx</source>
</tag>
</facelet-taglib>

在这里引用了一个component.jspx文件,这个文件就是一个或一组想放在一块当做一个组件使用的内容,和其他的jspx文件的写法一样。内容如下:


<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ice:selectInputDate id="inputDate" popupDateFormat="MM/dd/yyyy"
value="#{inputDate}" renderAsPopup="true"
styleClass="iceSelInpDateInput" onkeydown="ctlent(event);"
rendered="true">
</ice:selectInputDate>
<h:outputText value="#{inputDate}"
rendered="true" styleClass="printText">
<f:convertDateTime dateStyle="long" type="date" timeZone="GMT+8"
locale="cn" />
</h:outputText>
</ui:composition>

只需要注意<ui:composition>标签和引入的命名空间就行,标签里面的内容就看你要完成的功能了。在这里我使用了ICEfaces的日期组件,可以替换成JSF支技的任何东西。

接下来就是要使用了。

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:ald="http://xiangyun.cn/components">
<ui:composition template="/pages/layout/layout.jspx">
<ui:define name="content">
<h:form id="testForm">
<ald:echo inputDate="#{testBean.date}"/>
</h:form>
</ui:define>
</ui:composition>
</html>

这里需要引入命名空间,定义前缀为ald,

<ald:echo>这个标签名同xiangyun.taglib.xml中声明的要一致,inputDate是在定义组件component.jspx中声明的#{inputDate},它可以接收EL表达式。

这样我们就可以把大的复杂的页面,分成可以重用的组件了。

有问题可以和我联系:wfn_libo@163.com

也可以参考https://facelets.dev.java.net/nonav/docs/dev/docbook.html#gettingstarted-bean

<!----> Technorati : facelets, jsf

分享到:
评论

相关推荐

    facelets中文教程(初级+高级)

    1. **Facelets组件** - Facelets组件是UI的构建块,类似于HTML元素,但具有更丰富的功能和交互性。例如,`&lt;h:inputText&gt;`用于创建输入字段,`&lt;h:commandButton&gt;`用于定义按钮等。 2. **Facelets模板** - ...

    facelets_demo

    - `*.xhtml` 文件是Facelets的默认扩展名,它们是合法的XHTML文档,可以包含JSF组件和Facelets指令。 4. **Facelets 模板和布局** - Facelets 提供了模板和布局的概念,允许开发者创建可重用的头部、底部和侧边栏...

    facelets.......................................

    2. **Facelets组件化**: - **自定义组件**:开发者可以通过创建`.java`和`.xhtml`文件来定义自定义组件,实现特定的功能或外观。 - **库和标签库**:Facelets支持导入和使用JSF标准组件库,也可以创建自己的...

    Facelets

    3. **页面模板与组件**:Facelets 提供了一种基于 XML 的模板语言,允许你在 `template.xhtml` 中定义页面布局,然后在其他页面如 `guess.xhtml` 和 `response.xhtml` 中使用 `&lt;ui:include&gt;` 或 `&lt;ui:insert&gt;` 指令...

    facelets 教程

    Facelets 引入了一种基于组件树的视图管理方式,这使得页面布局和组件之间的关系变得异常清晰。每一个 Facelet 文件实际上是一个由 UI 组件构成的树形结构,这种结构化的方法不仅有利于代码的组织和重用,也使得动态...

    JSF1.2.07版源代码

    2. **Facelets组件** Facelets 提供了一个XML语法来定义和组合UI组件。在源代码中,可以研究Facelets如何解析这些XML文件,生成组件树,并将它们与请求处理流程关联起来。这有助于理解自定义组件的开发和使用。 3....

    facelets源码包

    Facelets提供了一种声明式的方式来创建动态和交互式的用户界面,允许开发者使用XML或者XHTML语法来定义组件、事件处理和页面布局。这个"facelets源码包"包含了Facelets的源代码和帮助文档,是深入理解Facelets工作...

    oracle ADF document

    2. **统一风格**: 通过使用ADF提供的Facelets组件,可以确保整个系统的界面风格一致。 3. **安全性**: ADF内置的安全特性可以确保敏感数据的安全。 4. **扩展性**: 由于ADF易于与其他Oracle产品集成,未来可以根据...

    JSF与Facelets应用程序

    7. **Facelets模板和组件**: Facelets的模板系统允许创建可重用的布局和组件,提高了代码的复用性和一致性。开发者可以创建一个母版页,然后在子页面中继承和扩展。 8. **整合其他技术**: JSF可以与其他Java EE技术...

    netbeans_Facelets_Seam_Ejb3编程入门

    - **Facelets**:是JSF(JavaServer Faces)的一个视图定义语言,提供了一种更简洁和模块化的页面设计方式,相比于传统的JSP页面,Facelets支持更高级的HTML标签和组件,使开发者能够更容易地构建复杂的用户界面。...

    jsf+facelets+ajax4jsf的全部jar包

    Facelets是JSF的默认视图定义语言,提供了一种声明式的方式来创建可重用、可维护的用户界面组件。Ajax4jsf则是JSF的一个扩展,它提供了集成的Ajax支持,使得开发者能够在不刷新整个页面的情况下更新部分UI。 1. **...

    Facelets Essentials - APRESS

    2. **组件化**:Facelets采用了组件化的思想,使得UI组件的定义更加清晰,易于理解和管理。 3. **性能优化**:与JSP相比,Facelets的编译机制和缓存策略更加高效,从而提升了JSF应用的整体性能。 4. **简化标记语言*...

    jsf-facelets1.1.9

    3. **组件库支持**:Facelets与多种JSF组件库(如MyFaces、RichFaces等)无缝集成,为开发人员提供了丰富的UI组件选择。 4. **编译时检查**:与JSP相比,Facelets在部署时进行编译,这有助于提前发现潜在的错误,...

    facelets技术文档

    Facelets 非常适合 JSF 最后,专为 JSF 设计的视图技术!...在这篇文章中,JSF 的热心支持者 Rick Hightower 介绍了关于 Facelets 他最喜欢的内容:容易的 HTML 样式的模板化和可重用的复合组件。

    Apress.Facelets.Essentials.May.2008

    书中的内容可能涵盖了Facelets的基础概念,包括如何创建和组织Facelets页面,以及如何定义和重用组件。 Facelets支持Ajax(异步JavaScript和XML),这是Web开发中的一个关键特性,使得页面可以部分更新,提高了用户...

    jsf 1.2 myfaces1.2.7 richfaces3.3.1 facelets1.2 所有的最新包

    在开发过程中,你可以利用MyFaces和RichFaces提供的组件来快速构建界面,同时利用Facelets的模板和复合组件功能来组织和重用视图代码。这些包的组合使用,可以帮助你构建出功能强大、交互性强的Web应用程序。

    facelets example program 编程 例子 JavaJazzUp.pdf

    - **Facelets 与 JSF 的整合**:解释如何将 Facelets 作为 JSF 的视图层使用,包括页面布局、组件使用等。 - **高级主题**:探讨 Facelets 的一些高级功能,如模板化、事件处理等。 - **实践案例**:通过具体的示例...

    Apress - Definitive Guide To Apache Myfaces And Facelets (2008)

    - 它支持多种视图技术,如JSP、Facelets等,并提供了丰富的组件库和扩展性,使得开发者能够轻松地构建复杂的企业级Web应用程序。 - MyFaces遵循开放源代码许可协议,拥有活跃的社区支持,为开发者提供了一个友好且...

Global site tag (gtag.js) - Google Analytics