2016-11-08 1 views
0

Ich benutze <ui:composition, aber fragte mich, ob es eine Möglichkeit für mich geben würde, einen kleinen Teil einer meiner Layout-Komponenten zu bearbeiten, ohne auf jeder einzelnen Seite zu tun. In meinem Fall erstelle ich eine Sidebar und möchte nur die aktive Klasse eines li ändern.JSF: Zusammensetzung ändern

commonlayout.xhtml

... 
<h:body> 
    <ui:insert name="sidebar"> 
     <ui:include src="commonsidebar.xhtml"/> 
    </ui:insert> 
</h:body> 
... 

commonsidebar.xhtml

... 
<ui:composition> 
    <div id="sidebar"> 
     <a href="#" class="visible-phone"> 
      <i class="icon icon-home"></i> Dashboard 
     </a> 
     <ul> 
      <li class="active"> 
       <a href="index.xhtml"> 
        <i class="icon icon-home"></i> <span>Dashboard</span> 
       </a> 
      </li> 
      <li> 
       <a href="seconpage.xhtml"> 
        <i class="icon icon-def"></i> <span>Second Page</span> 
       </a> 
      </li> 
     </ul> 
    <div id="sidebar"> 
</ui:composition> 
... 

secondpage.xhtml

... 
<ui:composition template="commonlayout.xhtml"> 
    ? 
</ui:composition> 
... 

Ich mag würde meine Sidebar gleich in meiner zweiten Seite zu halten, aber nur ändere die Einstellung <li> auf aktiv, und soweit ich weiß, <ui:define name="sidebar"> würde mich dazu bringen, das Ganze neu zu schreiben. Gibt es einen Weg in JSF für mich, dies zu tun?

Vielen Dank im Voraus!

Antwort