Thymeleaf 2.1.4 oficjalny dokument demonstruje wykorzystanie for each
jak poniżej:Thymeleaf: Jak wykluczyć zewnętrzny znacznik przy użyciu 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>
Generuje jedną <tr>
w każdej iteracji, co jest idealnym rozwiązaniem w tej sytuacji. Jednak w moim przypadku nie potrzebuję zewnętrznego znacznika (tutaj, <tr>
).
Moje przypadek użycia jest do generowania <bookmark>
tag w rekurencyjnej sposób, żadne inne znaczniki obejmują, a <bookmark>
tag musi zawierać nazwę i atrybut 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>
tym strona:
<bookmark th:include="bookmark : locationBookmark(${rootLocation})"/>
Dziękujemy.
można dostarczyć próbkę tagu chcesz nie blisko tagu zewnętrznej? –
@PavelUvarov Mój przypadek użycia został dodany, zobacz moje pytanie. – July
Niech zgadnę: chcesz n-poziomowe tagi dla dzieci? Myślę, że tak, ponieważ: zakładka nie jest tagiem html i nie zaleca się, aby nie zamykać tagów z treścią. Jeśli mam rację - powinieneś utworzyć i użyć jakiegoś pod-szablonu w rekursywny sposób. Nie jestem dobry w ThymeLeaf, żeby powiedzieć, jak powinieneś to zrobić, ale na pewno wiem, że to jest możliwe - proszę uważnie przyjrzyj się swoim dokumentom. –