0

当我应用条件时,我正在使用 .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”?

4

1 回答 1

1

结果的原因mod是 double 而不是 boolean ,而您试图将 double 结果视为 boolean

例如#{10 mod 4}将导致2而不是truefalse

此外,您不能+在 EL 表达式中使用

尝试这样的事情

<ace:dataTable id="tbl" ..... rowIndexVar="row" 
    rowStyleClass="#{(row mod 2 eq 0)?'chkred':'chknone'}">
于 2012-09-19T06:24:18.690 回答