在Richfaces应用程序中使用CombinedResourceHandler时,只有样式表和用户违抗脚本组合在一起。标准的JavaScript资源和所有Richfaces特定的资源仍然是独立的资源。
Omnifaces文件指出:
RichFaces在几个JS文件中也有同样的问题,但到目前为止,这并不是简单的解决方法。
所以我的问题是,这个“非琐碎的解决办法”会是什么?
据我所见,CombinedResourceHandler在getRendererType()返回org.richfaces.renderkit.ResourceLibraryRenderer时不会处理资源。然后由org.richfaces.renderkit.html.ResourceLibraryRenderer来处理这些问题。
我不知道在这里将RichFaces行为与OmniFaces相结合的最佳方法是什么。
发布于 2012-11-21 12:45:02
我能够通过修改OmniFaces CombinedResourceHandler来创建一个解决方案。
简而言之,详情如下:
Richfaces使用了一个名为ResourceLibrarys的概念,这意味着资源不仅可以是单个文件,还可以是这些文件的集合。例如,RichFaces使用一个名为base-component.reslib的资源。RichFaces ResourceHandler将此资源依赖项解释为
因此,CombinedResourceHandler需要一些额外的功能来将普通资源的依赖项从Richfaces ResourceLibraries中分离出来。后者需要根据从RichFaces源获得的规范来解决。
发布于 2012-12-06 18:59:46
在不修改CombinedResourceHandler本身的情况下解决这个问题并不容易。必须对CombinedResourceHandler本身进行真正的修改,以使用从RichFaces‘org.richfaces.resource.ResourceLibraryFactoryImpl提取资源的反射黑客。为了使OmniFaces不受RichFaces依赖,因此可以与其他组件库(如PrimeFaces )一起使用反射黑客是必要的。
根据第107期,这是在1.3-20121206中实现的。
https://stackoverflow.com/questions/13471516
复制相似问题