2011-11-10 7 views
12

me gustaría hacer una condición OR en este menú:¿Cómo funciona una condición OR en una expresión EL?

<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> 

Que si la página team.xthml o partnerships.xhtml son seleccionados por el usuario el valor 'activo' se establecería en la etiqueta <li>.

Respuesta

24

Ésta es la sintaxis correcta:

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

para que sea un poco más corto, se puede usar #{view} en lugar de #{facesContext.viewRoot}:

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

Para que sea aún más corto, que podría ser alias de la #{view.viewId} con <c:set>:

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

gracias Bauke, lo hice No sé que podría hacer más corto, gracias amigo. –

+0

De nada. – BalusC

Cuestiones relacionadas