2

私のTomcatでは、2つのコンテキストを定義しました。

1つは私のアプリケーションURLです。

http://localhost:8080/mysite/faces/abc.xhtml

もう1つは、他のアプリケーションで使用される可能性のあるすべての静的ファイルを配置するために使用されます。

http://localhost:8080/files/myfile.html

私のアプリケーションの.xhtmlファイルに、他のコンテキストのページを含めたい、たとえば

<ui:include src="/files/myfile.html">

しかし、私はいつもエラーが発生します

javax.faces.view.facelets.TagAttributeException:.....Invalid path : /files/myfile.html

ui:includeはコンテキスト関連のパスのみを検索するため、ここでの使用は適切ではないようです。それでは何を使うべきですか?

4

1 に答える 1

4

いくつかのオプションがあります:

  1. <iframe>代わりに使用してください。

  2. 共有ファイルを別のWebフラグメントプロジェクトにリファクタリングします。これは/WEB-INF/lib、両方のWebアプリケーションのJARとして終了する必要があります。/META-INF/resources別のWebフラグメントプロジェクトのフォルダーにFaceletsリソースを配置します。<ui:include>通常の方法で利用できます:共有コードを持つ複数のJSFプロジェクトの構造

  3. JSF 1.xの場合は、カスタムを使用しcom.sun.facelets.impl.DefaultResourceResolverます。別のコンテキストのファイルでFaceletsコンポジションを使用する方法

  4. JSF 2.xの場合は、カスタムを使用しますjavax.faces.view.facelets.ResourceResolver複数の戦争間でjsfエラーページを共有する方法

  5. JSF 2.2以降では、カスタムを使用します。外部ファイルシステムまたはデータベースからFaceletsテンプレート/ファイルを取得しjavax.faces.application.ResourceHandlerます。

于 2012-08-15T10:50:38.393 に答える