2

在我的 tomcat 中,我定义了两个上下文。

一个是我的应用程序 URL,即

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

另一个用于放置我所有可能被其他应用程序使用的静态文件。

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。将 Facelets 资源放在/META-INF/resources单独的 Web 片段项目的文件夹中。它将以<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+ 上,使用自定义javax.faces.application.ResourceHandler从外部文件系统或数据库获取 Facelets 模板/文件

于 2012-08-15T10:50:38.393 回答