Thymeleaf #aggregates.sum 具有多个条件

Thymeleaf #aggregates.sum with multiple conditions

我有一个MyObject列表如下

List<MyObject> myObjList; 

其中MyObject是class定义如下

 public class MyObject{

     private String status;
     private double amount;        

    }

现在我只想在金额不为空且状态代码既不是 XX 也不是 YY

时从列表中获取金额总和

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

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

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

不工作是什么意思?你打错号码了吗?无论如何,您的布尔表达式不正确。表达式为 (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])}