JSF 2: Помощь с логическим программированием - PullRequest
0 голосов
/ 28 июля 2011

У меня есть это меню:

<ul class="lavaLamp" id="menu">
    <li><a href="./index.xhtml" >Home</a></li>
    <li class="current"><a href="#">Company</a>
    //..
</ul>

Я хочу, чтобы это меню было компонентом, поэтому мне не нужно копировать и вставлять каждую страницу .xhtml.Но мне нужно указать поле класса в теге <li>, чтобы можно было использовать плагин ' LavaLamp '.

Например: текущая страница - index.xhtml, поэтому она должна сгенерировать:

<ul class="lavaLamp" id="menu">
    <li class="current"><a href="./index.xhtml" >Home</a></li>
    <li><a href="#">Company</a>
    //..
</ul>

Я думаю, как это сделать, но ничего не вышло.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

После @meriton поговорим об EL, я искал об этом и нашел кое-что о тройной EL, так что это мое решение:

<ul class="lavaLamp" id="menu">
    <li class="#{facesContext.viewRoot.viewId == '/index.xhtml' ? 'current' : '' }"><a href="index.xhtml" >Home</a></li>
    <li class="#{facesContext.viewRoot.viewId == '/pages/company/team.xhtml' ? 'current' : '' }"><a href="pages/company/team.xhtml" >Team</a></li>
    //..
</ul>
0 голосов
/ 29 июля 2011

Мой первый рефакторинг будет:

<ul class="lavaLamp" id="menu">
    <li class="#{facesContext.viewRoot.viewId = 'index.html' ? 'current' : ''"><a href="./index.xhtml" >Home</a></li>
    <li><a href="#">Company</a>
    //..
</ul>

(глобальная переменная el facesContext всегда указывает на FacesContext.getCurrentInstance())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...