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

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;` 指令...

    JSF1.2.07版源代码

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

    facelets源码包

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

    JSF与Facelets应用程序

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

    jsf+facelets+ajax4jsf的全部jar包

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

    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应用程序。

    MyFaces组件最新源代码

    6. **Facelets技术**:Facelets是JSF的默认视图定义语言,用于创建和管理用户界面组件。在MyFaces中,Facelets允许开发者用XML或XHTML语法编写模板,与组件库无缝集成。 7. **国际化与本地化**:MyFaces支持多语言...

    jsf组件树相关资料

    JSF组件树是基于XML的Facelets模板构建的,每个组件都有自己的属性和事件。根组件通常是`&lt;html&gt;`或`&lt;h:html&gt;`,其他组件如按钮、表单、输入字段等则作为子组件添加。组件可以通过`&lt;h:inputText&gt;`、`...

    JSF2.0实战 - 4、自定义组件

    在JSF中,自定义组件需要在Facelets的XML配置文件(faces-config.xml)中声明。声明包括组件的名称、类以及可选的属性。例如: ```xml &lt;component-type&gt;com.example.MyCustomComponent&lt;/component-type&gt; ...

    创建JSF自定义组件

    - **组件类(Component Class)**:这是自定义组件的核心,实现了`javax.faces.component.UIComponent`接口,定义了组件的行为和属性。 - **渲染器类(Renderer Class)**:负责将组件的模型数据转换为实际的HTML或...

    Facelets:jsf、primefaces、facelets、spring 集成、jstl、

    Facelets 是JSF 1.2及更高版本的默认视图技术,它使用XML语法来定义用户界面组件和布局。Facelets 提供了模板、组合和重用功能,使得开发更加模块化和易于维护。与JSP相比,Facelets 更加轻量级,有更好的性能和更少...

    jsf组件开发源码

    6. **使用组件**:在JSP或Facelets页面上,你就可以像使用内置组件一样使用你的自定义组件了。 在"comps"这个文件夹中,很可能包含了以上提到的各种源码文件,如Java组件类、faces-config.xml配置文件、以及可能的...

    jsf2.0 自定义组件

    在JSF 2.0中,自定义组件的开发变得更加方便,通过利用注解和Facelets的特性,可以快速地创建和部署组件。这使得JSF成为了一个强大且灵活的Web开发框架,为开发人员提供了构建企业级应用程序的高效工具。

    jsf 自定义组件开发

    使用JSF单元测试工具,如Facelets Test Harness或JSFUnit,可以帮助测试自定义组件的功能。同时,利用JSF的调试模式和日志记录可以找出潜在的问题。 通过以上步骤,开发者可以创建出满足特定需求的JSF自定义组件,...

Global site tag (gtag.js) - Google Analytics