1

在 Richfaces 应用程序中使用时CombinedResourceHandler,仅将样式表和用户定义脚本组合在一起。标准 JavaScript 资源和所有 Richfaces 特定资源保持为单独的资源。

Omnifaces 文档指出:

RichFaces 对几个 JS 文件有同样的问题,但到目前为止,这对于解决方法来说并不是微不足道的

所以我的问题是这个“重要的解决方法”会是什么?

据我所知,退货CombinedResourceHandler时不会处理资源。然后由.getRendererType()org.richfaces.renderkit.ResourceLibraryRendererorg.richfaces.renderkit.html.ResourceLibraryRenderer

我不确定在这里将 RichFaces 行为与 OmniFaces 结合起来的最佳方法是什么。

4

2 回答 2

0

我能够通过修改 OmniFaces 创建解决方案CombinedResourceHandler

简而言之:

Richfaces 利用了一个名为 ResourceLibrarys 的概念,这意味着资源可能不仅是单个文件,而是这些文件的集合。例如,RichFaces 使用名为base-component.reslib的资源。RichFacesResourceHandler将此资源依赖解释为对

  • javax.faces:jsf.js
  • jQuery.js
  • 富脸.js
  • richfaces-base-component.js

因此,CombinedResourceHandler 需要一些额外的功能来从 Richfaces ResourceLibraries 中分离出对普通资源的依赖。后者需要根据从 RichFaces 来源获得的规范来解决。

于 2012-11-21T12:45:02.807 回答
0

在不修改CombinedResourceHandler自身的情况下解决这个问题并非易事。CombinedResourceHandler必须对其本身进行修改以使用从 RichFaces' 中提取资源的反射黑客org.richfaces.resource.ResourceLibraryFactoryImpl。为了使 OmniFaces 不受 RichFaces 依赖项的影响,反射 hack 是必要的,这样它就可以与 PrimeFaces 等其他组件库一起使用。

根据issue 107,这是在 1.3-20121206 中实施的。

于 2012-12-06T18:59:46.197 回答