如何仅在特定页面上隐藏常用链接

How to hide a common link on a particular page only?

本文关键字:隐藏 常用 链接 何仅      更新时间:2023-09-26

假设应用程序的n页包含到page A的链接。但这个链接实际上放在了n页的模板部分。

请注意,page A还包含该模板部分。因此,该链接也存在于page A中。

这个想法是在从任何其他n页到page A的转换发生时隐藏到page A的链接。即,当我们在n个页面中的任何一个页面上时,该链接存在,但如果我们是page A,则该链接被隐藏。

我怎样才能通过一点点努力做到这一点?

您可以使用rendered属性并在其中检查viewId。在您的情况下:

<h:commandLink rendered="#{view.viewId ne '/pageA.xhtml'}"/>

在此示例中,h:commandLink将在除pageA.xhtml 之外的所有页面中呈现

此外,您还可以使用ui:param标记在模板中传递参数。所以,只有当参数为true时,才能在模板中呈现链接:

<!-- template.xhtml: -->
<h:commandLink rendered="#{renderLinkParam}"/>...<ui:insert name="myPage"/>

并在您的页面上使用此代码来传递参数:

<ui:composition template="template.xhtml">
        <ui:param name="renderLinkParam"  value="#{true}" />
        <ui:define name="myPage">...
        </ui:define>
</ui:composition>