繁体   English   中英

jsf 2.0表达式语言括号不起作用

[英]jsf 2.0 Expression language brackets not working

我在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 emptynot 这是一个重写(请注意, empty覆盖null ,之前不需要进行nullcheck)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM