web-dev-qa-db-ja.com

EL式のOR条件はどのようになりますか?

このメニューで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>

team.xthmlまたはpartnerships.xhtmlページがユーザーによって選択された場合、「アクティブ」値が<li>タグに設定されます。

16
Valter Silva

これは適切な構文です。

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

少し短くするには、#{view}の代わりに#{facesContext.viewRoot}を使用できます。

<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' : '' }">
29
BalusC