新版本的 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
jsf开发以及primefaces所用到的详细jar包
primefaces-5.0.jar
primefaces 用于JSF开发,轻松实现许多组建功能
primefaces-3.4.1.jar
primefaces-3.1primefaces-3.1.1-sources.jar.1-sources.jar
primefaces最新的jar包,7.0版版本的。推荐下载,如果都对学习,应用primefaces的朋友,可以加我QQ:278786226;备注上primefaces即可,相互交流学习
javax.faces.jar的高版本在国内网站几乎找不到,因为在研究richfaces 和primefaces,文档中说需要用到javax.faces-2.1.28或者更高版本,无奈百度搜索不到,只有想法在谷歌找,特地分享出来,想要更高版本 联系我!
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.
SpringBoot整合PrimeFaces demo案例
Primefaces 3.0.x upgrade 注意事項JAVA:org.primefaces.component.datatable.DataTable.s
primefaces-3.5.jar开发包
适合primefaces开发需要主题包,是在primefaces 网站的下载的,需要请下载,给1 分就行啊。
primefaces 一个机遇JSF2 的免费框架 界面比较友好 是个人开发和小型网站开发的首选
主题分析器 解析PrimeFaces all-themes-1.0.10.jar
公司项目用到jsf框架,标签用到的全是xthml。。网上查primeface中文版的用手手册太难,收集不易
PrimeFaces Blueprints.pdf高清带书签
PrimeFaces Extensions.zip
PrimeFaces Cookbook.pdf
core.zip,面向maven的primefaces扩展项目。primefaces扩展的核心功能