Официальный документ Thymeleaf 2.1.4 демонстрирует for each
использование, как показано ниже:Thymeleaf: Как исключить внешний тег при использовании th: each?
<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>
...
</tr>
Он генерирует один <tr>
в каждой итерации, который идеально подходит в данной ситуации. Однако в моем случае мне не нужен внешний тег (здесь, <tr>
).
Мой случай использования для генерации <bookmark>
тег рекурсивным образом, никакие другие теги не включают, а <bookmark>
тег должен содержать имя и HREF атрибута.
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<body>
<div th:fragment="locationBookmark(location)">
<bookmark th:each="map : ${location.subMaps}">
<bookmark th:name="${map.name}"
th:href="'#'+${map.id}" th:include=":: locationBookmark(${map})">
</bookmark>
</bookmark>
</div>
</body>
</html>
Включающая сторона:
<bookmark th:include="bookmark : locationBookmark(${rootLocation})"/>
Большое спасибо.
Можете ли вы предоставить образец тега вы хотите, чтобы не закрывать от внешнего тега? –
@PavelUvarov Мой прецедент добавлен, см. Мой вопрос. – July
Позвольте мне угадать: вы хотите сделать n-leveled дочерние теги? Я так думаю, потому что: bookmark не является тегом html и потому, что не рекомендуется закрывать теги с контентом. Если я прав, вы должны создать и использовать некоторый подшаблон рекурсивным образом. Я не в хорошем состоянии в ThymeLeaf, чтобы сказать, как вы должны это делать, но я точно знаю, что это возможно - внимательно посмотрите их документы. –