[我正在春季学习Thymeleaf,并且正在努力进行列表拟合。
[官方Tutorial: Using Thymeleaf没有谈论集合过滤和投影,但我发现Spring上的Thymeleaf使用Spring Expression Language。
本指南指出以下内容:
${collection.?[property == value]}
${collection.![property]}
如果我有一个对象列表,例如一个人列表,这很好。然后,我可以执行类似的操作:
${persons.?[age >= 18]}
选择至少18岁的所有人${persons.![name]}
选择每个人的名字问题:
如果我没有对象列表(例如人员列表),而是数字列表或字符串列表怎么办?那我该如何执行选择(过滤)?诸如numbers.?[>10]
之类的内容不起作用。
经过更多搜索后,我在Spring Expression Language文档中找到了答案。
在10.5.11变量]中,文档陈述了#this
和#root
变量。
变量#this始终被定义并引用当前评估对象(针对不合格的引用,将对其进行解析)。
因此,假设我有一个用整数填充的列表
numbers
,${numbers.?[#this > 10]}
过滤所有至少为10的数字。