JSF 2.0 выражения языковые скобки не работают - PullRequest
3 голосов
/ 14 марта 2011

У меня есть этот атрибут в моем h: commandButton

disabled="#{ not ( ( nodeChild.children == null or empty nodeChild.children ) and ( not setupManager.currentTerminals ) ) }"

Если он отображает disabled="false", все работает, но другой выдает это исключение

SEVERE: javax.faces.FacesException: java.lang.IllegalArgumentException: Cannot convert [] of type class java.util.ArrayList to class java.lang.Boolean

Каков наилучший способписать вышеупомянутое условие?Могу ли я использовать скобки?

1 Ответ

5 голосов
/ 14 марта 2011

#{setupManager.currentTerminals}, очевидно, возвращает ArrayList, и, таким образом, выражение #{not setupManager.currentTerminals} не будет выполнено, потому что это не Boolean.Используйте not empty вместо not.Вот переписывание (обратите внимание, что empty также охватывает null, вам не нужно делать проверку на нуль раньше).

disabled="#{not empty nodeChild.children and not empty setupManager.currentTerminals}"
...