Фильтр целочисленного списка в 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.

Другие вопросы по тегам