Các Thymeleaf 2.1.4 doc chính thức cho thấy việc sử dụng for each
như sau:Thymeleaf: Cách loại trừ thẻ bên ngoài khi sử dụng 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>
Nó tạo ra một <tr>
trong mỗi lần lặp, mà là hoàn hảo phù hợp trong tình huống này. Tuy nhiên trong trường hợp của tôi, tôi không cần thẻ bên ngoài (ở đây, <tr>
).
trường hợp sử dụng của tôi là để tạo ra <bookmark>
thẻ trong một cách đệ quy, không có thẻ khác bao gồm, và một thẻ <bookmark>
phải chứa tên và thuộc tính 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>
bao gồm cả phụ:
<bookmark th:include="bookmark : locationBookmark(${rootLocation})"/>
Rất cám ơn.
bạn có thể cung cấp mẫu thẻ mà bạn muốn không chặt chẽ bằng thẻ bên ngoài? –
@PavelUvarov Trường hợp sử dụng của tôi được thêm vào, xem câu hỏi của tôi. – July
Hãy để tôi đoán: bạn muốn tạo các thẻ con n-leveled? Tôi nghĩ như vậy bởi vì: bookmark không phải là thẻ html và vì nó không được khuyến cáo không đóng các thẻ với nội dung. Nếu tôi đúng - bạn nên tạo và sử dụng một số mẫu phụ theo cách đệ quy. Tôi không giỏi ThymeLeaf để nói làm thế nào bạn nên làm điều đó, nhưng tôi chắc chắn biết rằng điều này là có thể - hãy xem tài liệu của họ một cách cẩn thận. –