如何仅隐藏特定页面上的公共链接?

时间:2016-08-01 08:28:52

标签: javascript jsf jsf-2 jsf-2.2

让我们说n页的应用程序包含指向page A的链接。 但该链接实际上放在那些n页的模板部分中。

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

想法是在从任何其他n页转换到page A时隐藏到page A的链接。即当我们在任何n页面上,那么该链接存在但我们是page A然后该链接被隐藏。

如何通过一点努力实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以使用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>