Фильтровать список целых чисел в Thymeleaf - PullRequest
2 голосов
/ 19 февраля 2020

Я узнаю о Thymeleaf весной, и я борюсь с обработкой списков.

Официальное Учебное пособие: Использование Thymeleaf не говорит о фильтрации коллекций и проекции, но я обнаружил, что Thymeleaf на Spring использует язык выражений Spring .

В этом руководстве говорится следующее:

  • Синтаксис выбора (фильтрация ) оператор: ${collection.?[property == value]}
  • Синтаксис оператора проекции (отображения): ${collection.![property]}

Это нормально, если у меня есть список объектов, например список лиц. Затем я могу выполнить такие вещи:

  • Выбор (фильтрация): например, ${persons.?[age >= 18]} выбирает всех людей по крайней мере 18 лет
  • Проекция (отображение): например, ${persons.![name]} выбирает имя каждого человека

Вопрос:

Что делать, если у меня нет списка объектов (например, списка людей), но есть список номеров или список строк? Как я могу выполнить выбор (фильтрацию) тогда? Такие вещи, как numbers.?[>10] не работает.

1 Ответ

2 голосов
/ 19 февраля 2020

После дополнительного поиска я нашел ответ в документации Spring Expression Language .

В 10.5.11 Переменные В документации указано #this и #root переменные.

Переменная #this всегда определяется и ссылается на текущий объект оценки (для которого разрешены неквалифицированные ссылки).

Итак, предполагая, что у меня есть список numbers, заполненный целыми числами, ${numbers.?[#this >= 10]} создает новый список, который содержит все числа не менее 10.

...