我有以下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])
我没有收到任何错误。我不确定我在做什么错。
答案 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])}