2011-11-10 11 views
12

私は、このメニューでOR条件を作成したいと思います:team.xthmlまたはpartnerships.xhtmlページがユーザにより選択された場合に「アクティブ」値が<li>タグで設定されること EL式のOR条件はどうですか?

<li class="#{facesContext.viewRoot.viewId == ('/company/team.xhtml' or '/company/partnerships.xhtml') ? 'active' : '' }"><a class="item" href="company/company.xhtml">Company</a> 
    <ul> 
     <li><a href="company/team.xhtml">Team</a></li> 
     <li><a href="company/partnerships.xhtml">Partnerships</a></li> 
    </ul> 
</li> 

答えて

24

これは正しい構文です:

<li class="#{facesContext.viewRoot.viewId == '/company/team.xhtml' or facesContext.viewRoot.viewId == '/company/partnerships.xhtml' ? 'active' : '' }"> 

それは少し短いようにするには、あなたの代わりに#{facesContext.viewRoot}#{view}を使用することができます。

<li class="#{view.viewId == '/company/team.xhtml' or view.viewId == '/company/partnerships.xhtml' ? 'active' : '' }"> 

それはまだ短くするために、あなたは#{view.viewId}の別名でした<c:set>

<c:set var="viewId" value="#{view.viewId}" scope="request" /> 
... 
<li class="#{viewId == '/company/team.xhtml' or viewId == '/company/partnerships.xhtml' ? 'active' : '' }"> 
+1

ありがとう、私はやった私は短くすることができるか分からない、ありがとう。 –

+0

ようこそ。 – BalusC