【问题标题】:How to hide a common link on a particular page only?如何仅隐藏特定页面上的常用链接?
【发布时间】:2016-12-06 06:12:26
【问题描述】:
假设 n 页应用程序包含指向page A 的链接。
但是该链接实际上放置在该 n 页的模板部分中。
请注意,page A 也包含该模板部分。所以该链接也存在于page A 中。
这个想法是在从任何其他 n 页转换到 page A 时隐藏到 page A 的链接。 IE。当我们在任何 n 个页面上时,该链接存在,但我们是 page A,则该链接被隐藏。
我怎样才能通过一点点努力实现这一目标?
【问题讨论】:
标签:
javascript
jsf
jsf-2
jsf-2.2
【解决方案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>