I am new in thymeleaf. I have question about dynamic table. Here is my case :
[
{
"country":"country 1",
"districs":[
{
"district":"district 1",
"cinemas":[
{
"cinema": "cinema 1"
"movie":"Sherlock",
"visitor":30
},{
"cinema": "cinema 2"
"movie":"Terminator",
"visitor":40
},{
"cinema": "cinema 2"
"movie":"Tarzan",
"visitor":20
}]
}, {
"district":"district 2",
"cinemas":[
{
"cinema": "cinema 1"
"movie":"Sherlock",
"visitor":12
},{
"cinema": "cinema 2"
"movie":"Terminator",
"visitor":41
},{
"cinema": "cinema 2"
"movie":"Tarzan",
"visitor":24
}]
}, {
"district":"district 3",
"cinemas":[
{
"cinema": "cinema 1"
"movie":"Sherlock",
"visitor":12
},{
"cinema": "cinema 2"
"movie":"Terminator",
"visitor":41
}]
}]
}, {
"country":"country 2",
"districs":[
{
"district":"district 1",
"cinemas":[
{
"cinema": "cinema 2"
"movie":"Terminator",
"visitor":40
},{
"cinema": "cinema 2"
"movie":"Tarzan",
"visitor":20
}]
}, {
"district":"district 2",
"cinemas":[
{
"cinema": "cinema 1"
"movie":"Sherlock",
"visitor":12
},{
"cinema": "cinema 2"
"movie":"Tarzan",
"visitor":24
}]
}, {
"district":"district 3",
"cinemas":[
{
"cinema": "cinema 1"
"movie":"Sherlock",
"visitor":12
},{
"cinema": "cinema 2"
"movie":"Terminator",
"visitor":41
}]
}]
}]
And then I want to display like this :
---------------------------------------------------------------------------------------------------------
Movies |country 1 | country 2 |
----------------------------------------------------------------------------------------------
|district 1 | district 2 | district 3 | district 1 | district 2 | district 3 |
---------------------------------------------------------------------------------------------------------
Sherlock | 30 | 12 | 12 | 0 | 12 | 12 |
Terminat | 40 | 41 | 41 | 40 | 0 | 41 |
Tarzan | 20 | 24 | 0 | 20 | 24 | 0 |
---------------------------------------------------------------------------------------------------------
How I could achieve this in thymeleaf? My code as below, but still cannot achieve this output.
<table>
<thead>
<tr>
<th:block th:each="data : ${countries}">
<th th:colspan="${data.districts.size()}" th:text="${data.country}" ></th>
</th:block>
</tr>
<tr>
<th:block th:each="data : ${countries}">
<th:block th:each="district :${data.districts}">
<th th:text="${district.district}"></th>
</th:block>
</th:block>
</tr>
<thead>
<tbody>
<tr>
<th:block th:each="data : ${countries}">
<th:block th:each="district :${data.districts}">
<th:block th:each="cinema :${district.cinemas}">
<td th:text="${cinema.visitor}" />
</th:block>
</th:block>
</th:block>
</tr>
</tbody>
</table>
Please if anyone has any idea to solve this problem. BTW, for json I generated using spring rest. Thanks a lot.