如何处理Spring Expression Language中的列表列表

时间:2015-08-19 01:52:53

标签: java spring spring-el

我有包含一些基本属性的POJO和另一个POJO的列表(比如客户POJO),客户POJO又包含另一个POJO的列表(比如地址POJO)。

我可以使用Spring Expression Language' collection projection'来访问客户POJO列表中所有条目的所有属性。用于访问员工{#Customers.![customerName]}{#Customers.![customerAge]}等的运营商,其工作正常。

但有人可以告诉我如何访问每个客户POJO列表下的地址POJO的所有列表条目吗?

感谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

我担心Spring EL不支持嵌套列表投影,所以我们必须自己做。

实际上,集合投影与Java8的映射相同,集合选择等于Java8的过滤器。

通过使用Java8流,我们可以通过flatmapcollect执行此操作:

#{customers.stream()
  .map(Customer::getAddress)
  .flatMap(Collection::stream)
  .collect(Collectors.toList())}