ThymeLeaf предназначен для использования одного и того же файла в качестве прототипа, который вы можете просмотреть в браузере, а также рабочего файла шаблона.На практике это означает, что если вы хотите, вы можете открыть файл шаблона в браузере, фактически не запуская его, и он все равно выглядит хорошо.Например, в этом коде:
<a href="/toAdd" th:href="@{/list}" class="btn btn-info">Back</a>
Если вы откроете файл непосредственно в браузере, браузер проигнорирует th:href
(потому что он не знает, что с ним делать) и вместо этого будет использоватьhref="/toAdd"
.Однако, когда вы запускаете его через сервер шаблонов на сервере, href="/toAdd"
заменяется результатом динамического выражения th:href="@{/list}"
.
. Это легче показать с помощью таблицы.Например:
<table>
<tr>
<th>NAME</th>
<th>PRICE</th>
<th>IN STOCK</th>
</tr>
<tr th:each="prod : ${prods}" th:class="${prodStat.odd}? 'odd'">
<td th:text="${prod.name}">Onions</td>
<td th:text="${prod.price}">2.41</td>
<td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
</tr>
</table>
Когда вы откроете это в браузере, вы увидите таблицу с одной строкой (Лук, 2,41, да).Но когда вы запускаете его через сервер, фактическое содержимое таблицы заменяется данными, содержащимися в переменной ${prods}
.