假设应用程序的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>