胸腺#aggregates.sum具有多个条件

时间:2019-10-16 19:58:23

标签: spring-boot thymeleaf spring-el

我有以下MyObject的列表

List<MyObject> myObjList; 

其中MyObject的类定义如下

 public class MyObject{

     private String status;
     private double amount;        

    }

现在,仅当金额不为null且状态代码既不是XX也不是YY时,我才想从列表中获取金额总和。

我知道我可以在java上执行此操作,但是我需要在thymeleaf上执行此操作,这是我尝试过的方法,但是它不起作用

aggregates.sum(myObjList.?[amount!= null && (status!='XX' || status!='YY')].![amount])

我没有收到任何错误。我不确定我在做什么错。

1 个答案:

答案 0 :(得分:1)

不起作用是什么意思?您打错电话了吗?无论如何,您的布尔表达式不正确。表达式读取(status != 'XX' || status != 'YY'),它将匹配所有记录。

例如,如果status = 'XX'则:

('XX' != 'XX' || 'XX' != 'YY') => (false OR true) => true

YY也会发生同样的事情:

('YY' != 'XX' || 'YY' != 'YY') => (true OR false) => true

除此之外,一切似乎都对我有用。更正的表达式(不需要状态,除非您认为状态更好),

${#aggregates.sum(myObjList.?[amount != null && (status != 'XX' && status!='YY')].![amount])}