2013-07-24 2 views
0

Я хочу отобразить группу Panel только в том случае, если значение my selectOneMenu не равно null. у меня есть это:Основные шрифты selectonemenu on string check null value

<h:selectOneMenu value="#{bean.myString}"> 
    <f:selectItem itemValue=#{null} itemLabel="None" /> 
    <f:selectItem itemValue="first" itemLabel="First" /> 
    <f:selectItem itemValue="second" itemLabel="Second" /> 
    <f:ajax render="panelWrap" /> 
</h:selectOneMenu> 

<h:panelGroup id="panelWrap"> 
    <h:panelGroup rendered="#{bean.myString == null ? false : true}"> 
     // My content 
    </h:panelGroup> 
</h:panelGroup> 

я это сделал много с объектами, но здесь я застрял на простом строкового значения. Может ли кто-нибудь помочь? Thanks

+1

Помимо ошибок синтаксиса XML и неуклюжего двойного логического условия, я не вижу никаких проблем. В чем именно проблема, с которой вы сталкиваетесь? Что именно вы подразумеваете под «простым строковым значением»? Вы хотите проверить, выбрано ли '' first "' или так? Если да, почему вы спросили, хотите ли вы проверить «null»? – BalusC

+1

Вы забыли двойные кавычки '' 'at' # {null} '. – user1983983

+0

Я имею в виду, что условие в« рендерере »работает неправильно. Группа панелей всегда скрыта, даже когда я выбираю« Первый »или« Второй Я хотел бы сделать это скрытым только тогда, когда я выбираю «Нет». –

ответ

2

С вашего первого <f:selectItem> изменить itemValue=#{null} до itemValue="#{null}". Во втором panelGroup измените созданное условие на "#{not empty bean.myString}". Вы можете найти эту ссылку полезной.

Evaluate empty or null JSTL c tags