Ключевое слово empty
языка выражений проверяет, является ли данное свойство null
или пустым. Так что в вашем случае используйте not empty
:
<h:commandButton ... rendered="#{not empty myBean.myList}"/>
Таким образом, эта кнопка будет отображаться только в том случае, если список существует и не является пустым.
Другая идея заключается в предоставлении конкретного метода:
public boolean isCommandButtonRendered() {
return myList != null && !myList.isEmpty();
}
и используйте его в коде XHTML:
<h:commandButton ... rendered="#{myBean.commandButtonRendered}"/>
<Ч />
Редактировать
Я думаю, что вы неправильно поняли, что вы ожидаете от решения, которое я предоставил. Мое решение работает, если вы хотите протестировать сам список (то есть список null
или не содержит элементов).
В вашем случае кажется, что ваш список не пустой, но содержит элементы (объекты Items
), которые имеют значение, которое может быть равно 0
или нет.
Я не знаю код вашего Items
класса, поэтому я буду считать, что этот класс содержит свойство instock
int
.
Насколько я знаю, вы итерируете свой List
в пределах datatable
:
<h:datatable var="item" value="#{catItemsListController.quantityOnHand}" ...>
...
<h:column>
<h:commandButton ... rendered="#{item.instock gt 0}"/>
</h:column>
</h:datatable>
Как показано в моем коде, у вас есть commandButton
, который будет отображаться, только если значение instock
элемента item
больше (gt
) 0
.