JSF: Тернарный оператор, используемый для присвоения значения <f: param>, терпит неудачу - PullRequest
0 голосов
/ 01 октября 2010

Я использую теги JSF в файле XHTML.Я намерен включить или отключить пункт контекстного меню <rich:MenuItem>, установив для атрибута «disabled» значение «true» или «false» соответственно.Для этого я использую переменную bean-компонента в тернарном операторе и устанавливаю значение <f:param> равным «true» или «false» на основе переменной bean, как показано ниже:

<rich:componentControl event="oncontextmenu" for="network-tree-menu"
operation="show">
       <f:param id="nestlevel" value="#{item.nestLevel > 10 ? 'true' : 'false'}"  
        name="nestlevel" />
 </rich:componentControl>  

гдеitem является компонентом поддержки, а item.nestLevel является целым числом.

Я использую это значение <f:param> позже в файле XHTML, как показано ниже:

<rich:contextMenu ...
    <rich:menuItem id="abc" ajaxSingle="true" disabled="{nestlevel}"
            onclick="doSomething();" value="Do something...">
</rich:contextMenu>  

Это не работает !!Пункт меню всегда включен (я полагаю, это поведение по умолчанию), даже если результатом троичной операции является «истина».Есть ли что-то, чего мне здесь не хватает в синтаксисе, или есть какой-то другой способ, которым я могу сделать это условное включение пунктов контекстного меню в файле XHTML?

Заранее спасибо.

С уважением
Нагендра УМ

1 Ответ

1 голос
/ 01 октября 2010

Как насчет этого:

<f:param id="nestlevel" value="#{item.nestLevel > 10}" name="nestlevel" />
...