【问题标题】:ui:composition template="<template from jar>"ui:composition template="<jar 中的模板>"
【发布时间】:2012-06-12 18:17:24
【问题描述】:

我想将 JSF 的 Facelets 模板文件放在一个 JAR 文件中。

我试图用 EL 来引用它

<ui:composition template="#{resource['templates:template_pe_layout.xhtml']}">

它非常适合 CSS 或图像,但不适用于合成模板。

我怎样才能实现目标?

【问题讨论】:

    标签: jsf-2 jar facelets el


    【解决方案1】:

    #{resource} 表达式最初设计用于 CSS 文件中仅像这样使用

    .someclass {
        background-image: url(#{resource['somelibrary:img/some.png']});
    }
    

    不打算在&lt;h:outputStylesheet&gt;&lt;h:outputScript&gt;&lt;h:graphicImage&gt; 中使用,而应按如下方式使用:

    <h:outputStylesheet library="somelibrary" name="css/some.css" />
    <h:outputScript library="somelibrary" name="js/some.js" />
    <h:graphicImage library="somelibrary" name="img/some.png" />
    

    至于模板,只需在其中指定完整的/META-INF/resources 相对路径即可。

    <ui:composition template="/templates/template_pe_layout.xhtml">
    

    另见:

    【讨论】:

    • 非常感谢您的即时和有用的回答。无法想象它是那么容易。当您知道要搜索什么时,可以在其他位置找到它:link。问候 Chichiray :-)
    • 附加问题:如果我想覆盖主项目中的模板,我尝试将它放在 /resources/templates/template_pe_layout.xhtml 下,但这不起作用。如果在主项目和一个或多个 jar 中找到资源,是否有任何定义的搜索顺序?谢谢你,迪特
    • 在本地webapp中,它不应该在/resources文件夹中,而应该直接在webroot中。
    • 当然,一定是瞎了眼,抱歉。没有/resources它可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2013-01-27
    相关资源
    最近更新 更多