【问题标题】:jsf 2.0 Expression language brackets not workingjsf 2.0 表达式语言括号不起作用
【发布时间】:2011-07-14 23:59:16
【问题描述】:

我的 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

写上述条件的最佳方式是什么? 可以用括号吗?

【问题讨论】:

    标签: java jsf jsf-2 jstl el


    【解决方案1】:

    #{setupManager.currentTerminals} 显然返回了ArrayList,因此表达式#{not setupManager.currentTerminals} 将失败,因为它不是Boolean。使用not empty 而不是not。这是一个重写(注意empty 也涵盖了null,您之前不需要进行空检查)。

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

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 2015-02-03
      • 2014-11-11
      • 2021-08-02
      • 2012-10-19
      • 2011-01-11
      相关资源
      最近更新 更多