2016-11-08 98 views
0

我使用<ui:composition,但想知道是否有方法可以编辑我的一个布局组件的一小部分,而无需在每个单独的页面上执行<ui:define>。在我的情况下,我创建了一个侧边栏,只是想要更改li的活动类。JSF ui:组合修改

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中有什么办法可以做到这一点?

提前致谢!

回答