在 Thymeleaf 中过滤整数列表
Filter integer list in Thymeleaf
我正在学习 Spring 中的 Thymeleaf,我正在为列表筛选而苦苦挣扎。
官方Tutorial: Using Thymeleaf does not talk about collection filtering and projection, but I found out that Thymeleaf on Spring uses the Spring Expression Language.
本指南说明如下:
- 选择(过滤)运算符的语法是:
${collection.?[property == value]}
- 投影(映射)运算符的语法是:
${collection.![property]}
如果我有对象列表,例如人员列表,这很好。然后我可以执行类似的操作:
- 选择(过滤):例如,
${persons.?[age >= 18]}
选择所有年满 18 岁的人
- 投影(映射):例如
${persons.![name]}
选择每个人的名字
问题:
如果我没有对象列表(例如人员列表)而是数字列表或字符串列表怎么办?那我该如何进行选择(过滤)呢? numbers.?[>10]
之类的东西不起作用。
经过更多搜索,我在 Spring Expression Language 文档中找到了答案。
在 10.5.11 变量 中,文档说明了 #this
和 #root
变量。
The variable #this is always defined and refers to the current evaluation object (against which unqualified references are resolved).
因此,假设我有一个 numbers
填充整数的列表,${numbers.?[#this >= 10]}
创建一个新列表,其中包含至少为 10 的所有数字。
我正在学习 Spring 中的 Thymeleaf,我正在为列表筛选而苦苦挣扎。
官方Tutorial: Using Thymeleaf does not talk about collection filtering and projection, but I found out that Thymeleaf on Spring uses the Spring Expression Language.
本指南说明如下:
- 选择(过滤)运算符的语法是:
${collection.?[property == value]}
- 投影(映射)运算符的语法是:
${collection.![property]}
如果我有对象列表,例如人员列表,这很好。然后我可以执行类似的操作:
- 选择(过滤):例如,
${persons.?[age >= 18]}
选择所有年满 18 岁的人 - 投影(映射):例如
${persons.![name]}
选择每个人的名字
问题:
如果我没有对象列表(例如人员列表)而是数字列表或字符串列表怎么办?那我该如何进行选择(过滤)呢? numbers.?[>10]
之类的东西不起作用。
经过更多搜索,我在 Spring Expression Language 文档中找到了答案。
在 10.5.11 变量 中,文档说明了 #this
和 #root
变量。
The variable #this is always defined and refers to the current evaluation object (against which unqualified references are resolved).
因此,假设我有一个 numbers
填充整数的列表,${numbers.?[#this >= 10]}
创建一个新列表,其中包含至少为 10 的所有数字。