在我的JSF 2.0 Facelets应用程序中,我有一个光荣的模板,我希望所有页面都可以使用。它位于名为template.xhtml的Web应用的根目录中。所以它被引用,因为你会期望:我的模板中获取资源的绝对路径名
<ui:composition template="./template.xhtml">
但我现在导航,然后到子目录中的客户端文件。由于权限级别不同,以这种方式组织它们非常有用。这些子目录中的facelets可能会引用相同的模板,如下所示:
<ui:composition template="../template.xhtml">
到目前为止这样好。然而,在模板的头我拉在CSS这样的:
<link href="./resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="./resources/css/tableLayout.css" rel="stylesheet" type="text/css" />
<link href="../resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="../resources/css/tableLayout.css" rel="stylesheet" type="text/css" />
的原因冗余参考的是,我还没有发现任何其他方式来获得模板从根的环境中工作目录或子目录。以/开头的路径,除非你把应用程序的名称在像这样
/TheApp-Ver1_0/resources/css/default.css
的问题,这不工作是绝对路径有一个变量,而不是常量开始。该变量取决于应用程序在容器中的部署方式。有没有解决这个问题的干净方法?
我做了一些搜索找到这个问题。诚实。然而我怀疑这是另一个其中BalusC在其中一个提供了一个链接到一个盲点明显的解决方案广泛讨论我错过了某处。
你又做了一次。我注意到这些标签尚未包含在这里提到的一些在线参考中:http://stackoverflow.com/questions/539041/whats-the-best-online-reference-for-jsf-tags – AlanObject
很多人都有JSF 2.x(2009年下半年推出)发生了变化。您提到的链接是从2009年2月开始的,仅提及JSF 1.x文档。对于所有JSF 2.x标记,请查看JSF 2.x文档:http://download.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/当您使用JSF 2.x时,确保您正在阅读JSF 2.x针对性教程/书籍/文档/答案。 – BalusC
因此,没有任何机会引用不在资源文件夹中的css或js文件?既没有可能从浏览器中获取js/css资源,例如myhost/resources/partials/my.css? – ses