在Tomahawk成功部署后,出于对界面的优化和增加一些功能亮点的需要,我开始考虑使用一些sandbox中的控件,本来按理说一切都应该很顺利的,毕竟在此之前大部分问题都已经按部就班地做过了一遍,所有要改动的东西、以及哪些部分是做什么用的都已经清楚了,但结果还是出乎我的意料。
先说说这个意外的结果吧,含sandbox 组件的页面能够显示但没有相应的效果,sandbox的组件看起来好像被忽略了,查看html源码可知很多sandbox标签没有被正确解析,另外没有任何错误或警告信息,无论在页面还是在log中都没有发现任何有用线索,额外加用facestrace也没找到什么错误。
配置步骤如下:
1. 下载tomahawk-sandbox包,我先后试过两个版本:1.1.5 和 1.1.6-snapshot
2. 下载了facelets主站上的sandbox taglib文件,并且根据sandbox源码仔细核对修改过,确信没有了错误。
3. 修改web.xml,在context-param 中为facelets.LIBRARIES,增加了相应的taglib.xml,最终信息像下面这样
<!----> <context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>/WEB-INF/tomahawk.taglib.xml;/WEB-INF/sandbox.taglib.xml;/WEB-INF/jsf-comp-chart.taglib.xml;/WEB-INF/facestrace.taglib.xml</param-value>
</context-param>
以上配置中,除了sandbox,其他一切正常,另外还用了Ajax4JSF,但不管是否去掉它,对结果都没有影响,已试验过,不必再考虑这个因素。
4. 在测试页面中增加了namespace支持,加了点代码用到sandbox, 片断如下:
<!---->
<t:document xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:s="http://myfaces.apache.org/sandbox"
..>
<!-- effect by dojo -->
<s:effect id="effect1" fade="true">
<h:outputText value="Hello We hope you enjoy Apache MyFaces and the effects by DOJO and script.aculo.us" />
</s:effect>
<!-- input focus -->
<h:panelGrid columns="2">
<h:outputLabel for="input1" value="Input1: "/>
<h:inputText id="input1"/>
<h:outputLabel for="input2" value="Input2: "/>
<h:inputText id="input2"/>
<s:focus id="focus" for="input2" />
</h:panelGrid>
<!-- input suggest -->
<s:inputSuggest value="#{user.state.key}" required="true">
<f:selectItems value="#{choices}"/>
</s:inputSuggest>
5.并且在加入sandbox后,把以前的tomahawk-facelets.jar也从/WEB-INF/lib目录下删除试过,不删除时有冲突提示,但就sandbox控件的显示而言,结果是一样的,“没有!”
有谁能有比较好的解决方案,还是我漏掉了什么重要的步骤,请不吝指教,非常感谢!
另,希望上述这些配置方法对需要进行tomahawk,facestrace, jsf-comp在facelets中配置的人有些帮助!
问题找到了,因为sandbox.taglib.xml中有错误,导致faceletViewHandler.initializeCompiler失败,从而使用
xmlns:s="http://myfaces.apache.org/sandbox能被识别,但里面的TagLibConfig却没有正确的内容,这样facelet只好把部分标签忽略了。
分享到:
相关推荐
- 使用`<ui:include>`和`<ui:composition>`标签,可以将一个Facelets文件的内容包含到另一个文件中,实现页面的模块化。 二、Facelets高级特性 1. **命名空间和库** - Facelets支持自定义命名空间,这有助于组织...
3. **页面模板与组件**:Facelets 提供了一种基于 XML 的模板语言,允许你在 `template.xhtml` 中定义页面布局,然后在其他页面如 `guess.xhtml` 和 `response.xhtml` 中使用 `<ui:include>` 或 `<ui:insert>` 指令...
在 JavaServer Faces (JSF) 2.0 中,Facelets 取代 JavaServer Pages (JSP) 成为默认的视图声明语言 (VDL)。有了 Facelets,您不需要像以前...在 Web 应用程序中使用 Facelets 的部分好处包括模板化、重用和易于开发。
在Facelets源码包中,可能包含`web.xml`(Web应用部署描述符)和Facelets的配置文件。 - `META-INF`: 此目录常用于存储元数据,如`MANIFEST.MF`文件,它记录了关于JAR文件的信息,如版本和依赖。 3. **Facelets ...
在探索 Facelets 的世界之前,我们首先应该明确 Facelets 在 JavaServer Faces (JSF) 生态系统中的地位与作用。Facelets,作为 JSF 的官方视图技术,它在 JSF 2.0 中被引入,并迅速成为构建动态 Web 应用程序的首选...
Facelets 是一种用于构建用户界面的视图技术,主要在JavaServer Faces (JSF) 应用程序中使用。它提供了声明式的方式去定义页面结构和逻辑,使得开发者能够更高效地创建和维护Web应用程序的前端。在这个"facelets_...
在《NetBeans Facelets Seam Ejb3编程入门》文档中,作者Jens Frey介绍了如何在NetBeans IDE 5.51版本中配置Facelets 2、Seam 3以及EJB3技术。 - **Facelets**:是JSF(JavaServer Faces)的一个视图定义语言,提供...
通常,这需要在项目的类路径中添加相应的jar,配置web.xml以启用Facelets和Ajax4jsf,然后在Facelets页面中使用Ajax4jsf的组件和行为。 6. **开发实践**:在实际开发中,开发者可以通过JSF的Managed Beans定义业务...
在JSF和Facelets结合的应用程序中,开发者通常会遵循以下步骤: 1. **定义组件**: 使用Facelets的XML语法(通常以`.xhtml`为扩展名)创建页面,这些页面可以包含JSF组件(如`<h:inputText>`,`<h:commandButton>`等...
本书《Facelets Essentials》深入讲解了如何在JSF应用中充分利用Facelets框架。通过阅读本书,开发者将能够掌握以下核心技能: 1. **Facelets基础**:了解Facelets的基本概念和语法,包括如何使用Facelets标签库。 ...
在2012年9月发布的JSF Facelets 1.1.9是该技术的一个重要里程碑,它提供了许多改进和增强功能。 **Facelets的核心特性:** 1. **模板语言**:Facelets使用XML语法,提供了一种声明式的方式来创建和组织用户界面组件...
jsf_facelets 1.0.10版本
书中可能还会涉及JavaBeans、Managed Beans等Java EE组件,以及它们在Facelets中的使用。 "bbl.nfo"和"bbl.rar"可能是压缩包中的元数据文件和实际内容文件,通常在电子书或软件分发中出现。"file_id.diz"通常包含...
在文档标题和描述中提到的 “Facelets example program 编程 例子 JavaJazzUp.pdf” 暗示该文档包含了 Facelets 的使用示例。这对于初学者来说尤其有用,因为它可以帮助他们理解如何将 Facelets 应用于实际项目中。 ...
Facelets 非常适合 JSF 最后,专为 JSF 设计的视图技术!...在这篇文章中,JSF 的热心支持者 Rick Hightower 介绍了关于 Facelets 他最喜欢的内容:容易的 HTML 样式的模板化和可重用的复合组件。
jsf-facelets.jar 下载 希望对您有用
jsf-facelets.jar 1.1.15.B1
Facelets 非常适合 专为 JSF 设计的视图技术