Как получить второе значение в объекте списка с помощью тимелеафа?

Я отправляю объект атрибута модели (продукт) со своего контроллера на th: each тег на странице просмотра.

Если этот объект содержит 3 значения, например 0,1,3, я могу получить, используя th:each="var:${product}", а затем th:text=${var.id}, но здесь я хочу только 1. Как я могу его получить ?.

Может ли кто-нибудь помочь мне решить эту проблему?


person love kumar    schedule 03.09.2015    source источник
comment
Вы отправляете список объектов (список продуктов) или отдельный продукт? вы можете перебирать только коллекцию, а не отдельный объект. Однако, если вы повторяете список, обратитесь к , этот статус итерации может помочь вам   -  person nmy    schedule 03.09.2015
comment
var.id содержит 3 значения 0,1,2. Но я хочу напечатать только значение 1.   -  person love kumar    schedule 03.09.2015
comment
var.id это String со значением "0,1,2", или это поле integer, которое может быть либо 0, либо 1, либо 2?   -  person nmy    schedule 03.09.2015
comment
Почему вы не используете th:if="${var.id == 1}" th:text="${var.id}"?   -  person nmy    schedule 03.09.2015
comment
Спасибо за предложение @nmy. Но я думаю, что это неправильный способ, который вы предложили, потому что мы не знаем, какое будет второе значение. Я упомянул 0,1,2 только в качестве примера.   -  person love kumar    schedule 20.07.2017


Ответы (2)


Выражения Thymeleaf используют SpEL (Spring Expression Language), поэтому вы можете использовать все функции, доступные в SpEL. Из документации вы можете видеть, что доступ к содержимому коллекции / массива можно получить, используя квадратные скобки.

Например, если products - это набор объектов, каждый из которых имеет поле id:

<div th:text="${products[1].id}"></div>

Тогда содержимое div будет значением id во втором объекте. Доступ к другим элементам можно получить, изменив индекс в квадратных скобках.

person Andrew    schedule 03.09.2015
comment
Какой альтернативный способ сделать это без массива [1]? - person Jesse; 12.01.2017
comment
Если объект является реализацией универсального типа List ‹?›, Вы можете использовать в своем шаблоне такие методы, как .size () и .get (position). - person Flocke; 07.06.2018
comment
Гиперссылка на «документацию» мертва. - person du-it; 04.08.2019

Здесь вы можете сделать две вещи,

1) Вы можете использовать th: if в своем div или любом другом теге. нравится.

<div th:if="${var.variable == <YourValue>}" 
     th:text="${var.variable}"></div>

2), или вы можете просто отправить это единственное значение из своего контроллера, а затем просто использовать его здесь.

person Dev Sabby    schedule 07.06.2018