我正在使用.Nowm当我使用eq
应用条件时,它在数据表中工作得很好。
供参考:
<ace:dataTable id="tbl" ..... rowIndexVar="row"
rowStyleClass="#{((row+2)/2 eq 1)?'chkred':'chknone'}">
但当我使用mod
时这样
<ace:dataTable id="tbl" ..... rowIndexVar="row"
rowStyleClass="#{((row+2)/2 mod 0.0)?'chkred':'chknone'}">
它抛出异常
java.lang.IllegalArgumentException: Cannot convert ? of type class java.lang.Double to class java.lang.Boolean
我想知道为什么这段代码会抛出这个异常,我怎么能在这里使用“mod”?
答案 0 :(得分:1)
它的原因是mod
的结果是双精度而不是布尔值,并且你试图将这个双重结果视为布尔值
例如#{10 mod 4}
将导致 2 而不是 true 或 false
此外,您无法在EL表达式中使用+
尝试这样的事情
<ace:dataTable id="tbl" ..... rowIndexVar="row"
rowStyleClass="#{(row mod 2 eq 0)?'chkred':'chknone'}">