Итерацию с индексом с использованием тимелеафа

Я новичок в thymeleaf и конвертирую весь мой код jsp в thymeleaf. Я не знаю, как преобразовать этот ниже код в thymeleaf. Кто-нибудь знает, как преобразовать приведенный ниже код в thymeleaf?

<logic:iterate id="id" property="idList" name="sampleForm" indexId="i">
    <label for="id<%=i%>">
      <bean:write name="id" property="id" />
    </label>
</logic:iterate>

Скажите, пожалуйста, как инициализировать значение индекса в thymeleaf для использования в некоторых значениях?

Ответ 1

<label th:each="id,status : ${idList}" th:for="|id${status.index}|" th:text="${id.id}"></label>
  • th:each будет выполнять итерацию по idList, назначить каждому элементу id и создать label для каждого элемента. Статус элемента можно назначить добавлением дополнительного имени, разделенного запятой (status в этом примере).
  • th:for установит атрибут for метки. Трубы (|) используются для упрощения конкатенации строк.
  • th:text установит внутренний текст метки на идентификатор.

Ответ 2

Вы также можете использовать его следующим образом:

<label th:each="id : ${idList}" th:for="${'id' + idStat.index}" th:text="{id.id}">

Здесь начинается индекс от 0

Если вы хотите запустить индекс из 1, используйте этот

<label th:each="id : ${idList}" th:for="${'id' + idStat.count}" th:text="{id.id}">

Ознакомьтесь с Документация Thymeleaf