Фильтр целочисленного списка в Thymeleaf
Я изучаю Thymeleaf весной, и я борюсь с подборкой списков.
Официальный учебник: Использование Thymeleaf не говорит о фильтрации и проекции коллекции, но я обнаружил, что Thymeleaf в Spring использует язык выражений Spring.
В этом руководстве говорится следующее:
- Синтаксис оператора выбора (фильтрации):
${collection.?[property == value]}
- Синтаксис оператора проекции (сопоставления):
${collection.![property]}
Это нормально, если у меня есть список объектов, например список людей. Тогда я могу делать такие вещи:
- Выбор (фильтрация): например,
${persons.?[age >= 18]}
выбирает всех лиц не моложе 18 лет - Проекция (отображение): например,
${persons.![name]}
выбирает имя каждого человека
Вопрос:
Что делать, если у меня есть не список объектов (например, список лиц), а список чисел или список строк? Как тогда я могу произвести отбор (фильтрацию)? Вещи какnumbers.?[>10]
не работает.
1 ответ
После еще нескольких поисков я нашел ответ в документации Spring Expression Language.
В документации 10.5.11 Variables указывается#this
а также #root
переменные.
Переменная #this всегда определяется и относится к текущему объекту оценки (по которому разрешаются неквалифицированные ссылки).
Итак, если у меня есть список numbers
заполнены целыми числами, ${numbers.?[#this >= 10]}
создает новый список, содержащий все числа не менее 10.