在Richfaces应用程序中使用CombinedResourceHandler
时,仅组合样式表和用户定义脚本。标准JavaScript资源和所有Richfaces特定资源仍然是分离的资源。
Omnifaces文档指出:
RichFaces与几个JS文件存在同样的问题,但到目前为止,解决这个问题并不是一件容易的事情
所以我的问题是这个'非平凡的解决方法'会是吗?
据我所见,CombinedResourceHandler
在getRendererType()
返回org.richfaces.renderkit.ResourceLibraryRenderer
时不会处理资源。然后由org.richfaces.renderkit.html.ResourceLibraryRenderer
处理这些。
我不确定在这里将RichFaces行为与OmniFaces结合起来的最佳方法是什么。
答案 0 :(得分:0)
我能够通过修改OmniFaces CombinedResourceHandler
来创建解决方案。
详细信息:
Richfaces利用名为ResourceLibrarys的概念,这意味着资源不仅可以是单个文件,而且可以是这些文件的集合。例如,RichFaces使用名为 base-component.reslib 的资源。 RichFaces ResourceHandler
将此资源依赖关系解释为依赖
因此,CombinedResourceHandler需要一些额外的功能来将依赖关系分离到Richfaces ResourceLibraries的普通资源。后者需要根据从RichFaces来源获得的规范来解决。
答案 1 :(得分:0)
在不修改CombinedResourceHandler
本身的情况下解决这个问题并非易事。 CombinedResourceHandler
本身确实需要修改才能使用反射黑客从RichFaces org.richfaces.resource.ResourceLibraryFactoryImpl
中提取资源。反射黑客是必要的,以保持OmniFaces不受RichFaces依赖,以便它可以与PrimeFaces等其他组件库一起使用。
根据issue 107,这是在1.3-20121206中实施的。