2

Facelet テンプレートでヘッダー、ボディ、フッターを定義しています。ログイン ページのヘッダーとフッターを非表示にしたいと考えています。どうすればそれを達成できますか?

4

1 に答える 1

6

方法の 1 つは、現在のビュー IDに基づいて条件付きでレンダリングすることです。

<h:panelGroup id="header" layout="block" rendered="#{view.viewId != '/login.xhtml'}">
    Header.
</h:panelGroup>

<div id="body">
    <ui:insert name="body">Body.</ui:insert>
</div>

<h:panelGroup id="footer" layout="block" rendered="#{view.viewId != '/login.xhtml'}">
    Footer.
</h:panelGroup>

別の方法は、次を使用してパラメータ化すること<ui:param>です。

<h:panelGroup id="header" layout="block" rendered="#{not hideHeaderAndFooter}">
    Header.
</h:panelGroup>

<div id="body">
    <ui:insert name="body">Body.</ui:insert>
</div>

<h:panelGroup id="footer" layout="block" rendered="#{not hideHeaderAndFooter}">
    Footer.
</h:panelGroup>

そして、のテンプレート クライアントで/login.xhtml:

<ui:composition template="/WEB-INF/templates/layout.xhtml" ...>
    <ui:param name="hideHeaderAndFooter" value="true" />
    <ui:define name="body">
        ...
    </ui:define>
</ui:composition>
于 2013-03-27T19:08:33.673 に答える