JSF模板覆盖不起作用

时间:2015-02-21 14:01:28

标签: jsf jsf-2.2

我的主要模板:

<h:body>


    <div id="top" class="top">
        <ui:insert name="top">Top</ui:insert>
    </div>
    <div>
        <div id="left">
            <ui:insert name="left"></ui:insert>
        </div>
        <div id="content" class="left_content">
            <ui:insert name="content">Content</ui:insert>
        </div>
    </div>
</h:body>

我的客户端模板(应该覆盖上面的部分):

<body>

    <ui:composition template="./mainTemplate.xhtml">

        <ui:define name="top">
            top 123
        </ui:define>

        <ui:define name="left">
            left 123
        </ui:define>

        <ui:define name="content">
            content 123
        </ui:define>

    </ui:composition>

</body>

模板正在使用默认值加载,因此没有覆盖,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

由于您未加载客户端模板,如果您的mainTemplate.xhtml位于应用程序的根目录中,请按照以下方式使用它:template="/mainTemplate.xhtml",而不是"."

此外,请确保您使用正确的命名空间声明命名空间,这适用于您的情况(根据您的问题标记,我假设您使用JSF 2.2):

xmlns:ui="http://xmlns.jcp.org/jsf/facelets