百里香无法聚合包含空值的可迭代

时间:2019-05-31 13:48:20

标签: spring-boot thymeleaf

我正在尝试使用thymeleaf aggregate实用工具从下面的列表中查找工资总额

th:text="${#aggregates.sum(myList.![salary])}"

此处myListMyObjct的列表,如下所示

List<MyObject> myList;

public class MyObject{

private String name;
private double salary;
//getter setter
}

在列表中的每个项目上薪水为null之前,一切正常。在这种情况下,我会出错 java.lang.IllegalArgumentException: Cannot aggregate on iterable containing nulls

如何检查列表中的所有项目是否都是null,以防止出现此错误。

1 个答案:

答案 0 :(得分:1)

首先使用collection selection来消除薪水为null的职位。

${#aggregates.sum(myList.?[salary != null].![salary])}

选择集合会创建一个新列表,其中每个元素都满足条件。在这种情况下,我将从myList创建一个新列表,其中列表中的每个项目的薪水都为非空(salary != null