2016-08-01 33 views
0

Angenommen, die n-Seiten der Anwendung enthalten einen Link zu page A. Aber dieser Link wurde tatsächlich in den Vorlagenbereich dieser n-Seiten eingefügt.Wie kann man einen gemeinsamen Link nur auf einer bestimmten Seite verbergen?

Beachten Sie, dass die page A auch diesen Vorlageteil enthält. So ist dieser Link auch im page A vorhanden.

Die Idee ist, den Link zu page A zu verstecken, wenn der Übergang von anderen n-Seiten zu page A passiert wurde. I.e. Wenn wir auf einer der N-Seiten sind, dann ist dieser Link vorhanden, aber wir sind ein page A, dann ist dieser Link ausgeblendet.

Wie kann ich das mit ein wenig Aufwand erreichen?

Antwort

1

Sie können das Attribut rendered verwenden und viewId darin überprüfen. In yor Fall:

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

In diesem exmaple h:commandLink wird in allen Seiten außer pageA.xhtml

Sie mithilfe ui:param Tag-Parameter in der Vorlage passieren können auch gemacht werden. So können Sie Link in Vorlage machen nur, wenn der Parameter true:

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

Und verwenden Sie diesen Code auf Ihrer Seite Parameter zu übergeben:

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