根据模板客户端隐藏模板的特定部分

Rys*_*Rys 2 jsf templates facelets

我在Facelet模板中定义了标题,正文和页脚.我想在我的登录页面中隐藏页眉和页脚.我怎样才能做到这一点?

Bal*_*usC 6

其中一种方法是根据当前视图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>
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用<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>
Run Code Online (Sandbox Code Playgroud)

然后在模板客户端/login.xhtml:

<ui:composition template="/WEB-INF/templates/layout.xhtml" ...>
    <ui:param name="hideHeaderAndFooter" value="true" />
    <ui:define name="body">
        ...
    </ui:define>
</ui:composition>
Run Code Online (Sandbox Code Playgroud)