2016-11-08 4 views
0

私は<ui:compositionを使用していますが、個々のページごとに<ui:define>を実行せずにレイアウトコンポーネントの1つの小さな部分を編集する方法があるのだろうかと思っていました。私の場合は、サイドバーを作成していて、アクティブクラスを変更したいのですが、liです。私は私の2番目のページに同じ私のサイドバーを維持したいが、ちょうどでしょうJSF ui:composition amending

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でこれを行う方法はありますか?

ありがとうございます!

答えて