我的 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
写上述条件的最佳方式是什么? 我可以使用括号吗?
最佳答案
#{setupManager.currentTerminals}
显然返回一个 ArrayList
,因此表达式 #{not setupManager.currentTerminals}
将失败,因为它不是 boolean 值
。使用 not empty
而不是 not
。这是重写(请注意,empty
也涵盖 null
,您之前不需要执行 nullcheck)。
disabled="#{not empty nodeChild.children and not empty setupManager.currentTerminals}"
关于java - jsf 2.0 表达式语言括号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5298735/