新版本的 JBOSS EAP中,通过“module”机制实现对jar包或者其他资源的管理。
本文不是讲解如何使用系统自带module或者自定义module的。这两点可以参照我之前的博文:
http://rainbow702.iteye.com/blog/2065353
本文主要是对最近遇到的一个问题进行说明。这个问题是关于 primeface.jar 的使用的,现象是primefaces 的 标签不能正常被 渲染(rendered) 的问题。
对于 primefaces 的使用,不管是在官网上找到的sample,还是google出来的sample示例,都需要将 primefaces.jar放置到 APP的 WEB-INF/lib 目录下,这样,在xhtml中使用 "p:"开头的tag时,才会被正确地解析成 primefaces 中对应的tag。
但是,为了提高复用性,不想在每个 工程中都放置一个 primefaces.jar。出于这个目的,我们自然而然的会想到使用 JBOSS 的module 机制。所以,二话不说,将 primefaces.jar做成一个单独的module,然后在 jboss-depolyment-structure.xml 中进行引用:
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <module name="org.primefaces"/> </dependencies> </deployment> </jboss-deployment-structure>
按正常的理解,并结合之前的经验(上面给出的那篇贴子),认为这样应该就可以了,画面应该能够正常解析 primefaces 的相关标签了。可是,现实是残酷的。当你去打开包含primefaces相关标签的画面时,你会发现画面不是你想像中的结果。然后你可以通过 右击,查看 页面的源代码,会发现,所有 primefaces相关的标签完全没有被解析,还是原样输出。
鉴于这个效果,我担心会不会上像这种方式失败了,导致了 primefaces 的jar包没有被成功引入啊。不过 通过查看 JBOSS 的server.log,并未发现有异常。后来,我又自己在后台代码中,写了一个方法,在该方法中,调用了 primefaces 中 class org.primefaces.util.AgentUtils 类中的 isIE() 这个方法,然后将判断结果显示到画面上。发现是能够正常显示的。 这就说明 primefaces 的jar包应该被加载到 JVM 中了。
那么,为什么xhtml中的primefaces标签不能被解析呢?
这个时候,我想到会不会是因为 primefaces 的tablig 的 声明 xml 文件没有被parse导致系统不认 primefaces 的标签呢? 于是, google了一下。 我去,还真是。遇到同样问题的人还不少。比如:
https://issues.jboss.org/browse/WFLY-1172
这个是官网方的 issue tracker。 虽然这个问题,目前还是 OPEN 的状态,但是我在其下面的回答中,找到一个提示,就是 “meta-inf='export'”。 抱着试试看的态度,试了一下。哎,我去,还真管用。至此,这个问题解决。至于为什么管用,大家可以去看看 primefaces.jar 中 META-INF 目录下的文件就知道了。(没错,primefaces 的 taglib 的 声明 xml 文件就在其中)。
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <module name="org.primefaces" export="true" meta-inf="export"/> </dependencies> </deployment> </jboss-deployment-structure>
后记: 我觉着本来这个问题并不是一个很难搞定的问题,但是为什么还是花了很多时间去调查才有结果?我觉得一个原因就是,JBOSS 官网没有一个对 jboss-depolyment-structure.xml 这份配置文件的详细说明,以致于我们对这份配置文件可以配置哪些项,这些项又有哪些属性,这些属性又是干嘛用的,都不清楚。 不像 struct.xml 之类的配置,在网上随便一搜就可以搜到大量配置说明。
相关推荐
primefaces-5.2.jar
1. **primefaces-5.2.jar**:这是PrimeFaces库的核心组件,包含了5.2版本的所有组件、事件处理和皮肤样式。此版本支持JSF 2.x,提供了大量的UI组件,如数据表、图表、日期选择器、对话框等,极大地增强了用户界面的...
primefaces-5.0.jar
primefaces 用于JSF开发,轻松实现许多组建功能
primefaces-3.4.1.jar
安装 PrimeFaces 非常简单,主要步骤包括将 PrimeFaces 的 JAR 文件添加到项目的类路径中。对于 Maven 项目,可以通过在 `pom.xml` 文件中添加相应的依赖来完成这一过程。例如: ```xml <groupId>org.primefaces ...
**PrimeFaces.zip** 是一个包含SpringBoot与PrimeFaces整合示例的压缩文件。SpringBoot是一个流行的Java框架,用于简化Spring应用程序的开发,而PrimeFaces是一个功能丰富的JavaScript库,专为JavaServer Faces (JSF...
javax.faces.jar的高版本在国内网站几乎找不到,因为在研究richfaces 和primefaces,文档中说需要用到javax.faces-2.1.28或者更高版本,无奈百度搜索不到,只有想法在谷歌找,特地分享出来,想要更高版本 联系我!
<filter-class>org.primefaces.webapp.filter.FileUploadFilter <filter-name>primefaces-file <url-pattern>/* ``` ##### 3.4 HelloWorld示例 创建一个简单的JSF页面,引入PrimeFaces的库,并使用其中的一...
primefaces-3.1primefaces-3.1.1-sources.jar.1-sources.jar
primefaces最新的jar包,7.0版版本的。推荐下载,如果都对学习,应用primefaces的朋友,可以加我QQ:278786226;备注上primefaces即可,相互交流学习
总的来说,PrimeFaces是JSF开发中的重要工具,尤其对于需要创建交互性强、用户体验良好的Web应用来说。配合中文文档,即使不精通英语的开发者也能轻松掌握并利用PrimeFaces的强大功能,提高开发质量和效率。对于公司...
3. **重启服务器**:如果你的应用程序服务器(如Tomcat、Jetty等)在升级过程中没有关闭或重启,那么可能需要执行这一操作以确保所有的旧类加载器被释放,新的类加载器能够正确加载新版本的类。 4. **遵循迁移指南*...
PrimeFaces is an open source library for Java Server Faces Web framework. Main goal of PrimeFaces is to create a component suite containing a rich set of components and ...development of PrimeFaces.
升级到primefaces-3.0.1.jar可作为临时解决方案。此外,JavaScript代码在XHTML文件中的位置可能会影响其执行效果,需要检查并确保它们在正确的位置。 这些升级注意事项是确保Primefaces 3.0.x平稳过渡的关键步骤。...
2. **primefaces-3.5.jar**: 这个JAR文件是PrimeFaces 3.5的核心库,包含了所有预定义的组件、行为和渲染器。开发者在项目中引入这个JAR,就能在JSF页面上使用PrimeFaces的组件。这些组件通过XML标记(如`...
适合primefaces开发需要主题包,是在primefaces 网站的下载的,需要请下载,给1 分就行啊。
**PrimeFaces与all-themes-1.0.10.jar** PrimeFaces是一个广泛使用的开源Java库,专门用于构建用户界面(UI)在企业级JavaServer Faces(JSF)应用程序中。它提供了大量的UI组件,如表格、图表、对话框、日期选择器...
使用Maven作为构建工具,可以通过添加依赖配置来轻松地将PrimeFaces Extensions引入到项目中,这样就可以利用其提供的额外功能,如高级表格功能、拖放支持、富文本编辑器等。 开源项目的特点是开放源代码和社区驱动...