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!