Создать таблицу в thymeleaf

#html #html-table #each #thymeleaf

#HTML #html-таблица #каждый #thymeleaf

Вопрос:

Я новичок в thymeleaf и пытаюсь создать простую таблицу, используя массив и цикл each.

Мой код выглядит следующим образом:

 <!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Smoke Tests</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<table border="1" style="width:300px">
    <tr>
        <td>Test Name</td>
    </tr>
    <tr th:each="smokeTest : ${smokeTests}">
        <td>
            th:text="${smokeTest.name}">A Smoke Test'
        </td>
    </tr>
</table>
</body>
</html>
  

В основном моя проблема в том, что я не могу запустить цикл как <td> s внутри <tr> s . Есть ли какой-либо способ, которым этот код мог бы работать?

Ответ №1:

Вы должны поместить th:text в качестве атрибута тега, чтобы

 <tr th:each="smokeTest : ${smokeTests}">
   <td th:text="${smokeTest.name}">A Smoke Test'</td>
</tr>
  

должно выполняться.

Ответ №2:

Простое решение, которое приходит на ум первым:

 <th:block th:each="smokeTest : ${smokeTests}">
    <tr>
        <td th:text="${smokeTest.name}">A Smoke Test'</td>
    </tr>
</th:block>
  

Подробности: http://www.thymeleaf.org/whatsnew21.html#bloc

Комментарии:

1. Это не работает, потому что th: text не имеет отношения к циклу.

Ответ №3:

Хотя, это поздний ответ. Это более конкретная работа, например

 <tr th:each="smokeTest : ${smokeTests}">
   <td><p th:text="${smokeTest.name}"></p></td>
</tr>