我正在使用<ui:composition
,但想知道是否有办法让我编辑其中一个布局组件的一小部分而不在每个页面上执行<ui:define>
。在我的情况下,我正在创建一个侧边栏,只想更改li
的活动类。
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>
...
我想在第二页中保持我的侧边栏相同,但只需将正确的<li>
更改为有效,并且据我所知,<ui:define name="sidebar">
会让我重写整件事。在JSF中有什么办法让我这样做吗?
提前致谢!
答案 0 :(得分:0)
尝试这样的事情:
<li class="#{view.viewId eq '/seconpage.xhtml' ? 'active' : ''}">
Highlighting current page as active link in included navigation menu