1

CombinedResourceHandlerRichfaces アプリケーションで使用する場合、スタイルシートとユーザー定義スクリプトのみが組み合わされます。標準の JavaScript リソースとすべての Richfaces 固有のリソースは、別個のリソースとして残ります。

Omnifaces のドキュメントには次のように記載されています。

RichFaces はいくつかの JS ファイルで同じ問題を抱えていますが、これは今のところ回避策が簡単ではありません。

だから私の質問は、この「重要な回避策」が何であるかということです?

私が見る限り、返されたCombinedResourceHandlerときにリソースを処理しません。これらは によって処理されます。getRendererType()org.richfaces.renderkit.ResourceLibraryRendererorg.richfaces.renderkit.html.ResourceLibraryRenderer

ここで、RichFaces の動作と OmniFaces を組み合わせる最良の方法が何であるかはわかりません。

4

2 に答える 2

0

CombinedResourceHandlerそれ自体を変更せずにこれを回避することは簡単ではありませんでした。CombinedResourceHandlerRichFacesからリソースを抽出するリフレクションハックを使用するには、それ自体を実際に変更する必要がありますorg.richfaces.resource.ResourceLibraryFactoryImpl。OmniFacesをRichFacesの依存関係から解放し、PrimeFacesなどの他のコンポーネントライブラリと一緒に使用できるようにするには、リフレクションハックが必要です。

問題107に従って、これは1.3-20121206で実装されました。

于 2012-12-06T18:59:46.197 に答える
0

OmniFaces を変更することで、ソリューションを作成できましたCombinedResourceHandler

要するに詳細:

Richfaces は ResourceLibrarys と呼ばれる概念を利用しています。これは、リソースが単一のファイルだけでなく、それらのファイルのコレクションである可能性があることを意味します。たとえば、RichFaces はbase-component.reslibという名前のリソースを使用します。RichFacesResourceHandlerは、このリソースの依存関係を次への依存関係として解釈します。

  • javax.faces:jsf.js
  • jquery.js
  • richfaces.js
  • richfaces-base-component.js

そのため、Richfaces ResourceLibraries から通常のリソースへの依存関係を分離するために、CombinedResourceHandler にはいくつかの追加機能が必要でした。後者は、RichFaces ソースから取得した仕様に従って解決する必要がありました。

于 2012-11-21T12:45:02.807 に答える