У меня есть приложение с двумя объектами, имеющими двунаправленное отношение один ко многим.Владельцы и велосипеды.
Таким образом, получение владельцев с помощью curl даст
[
{"id":1,
"userName":"user1",
"bicycles":
[
{
"id":1,
"make":"dawes",
"model":"civic",
"owner":1
}
]
},
{"id":2,
"userName":"user2",
"bicycles":
[
{
"id":2,
"make":"whyte",
"model":"montpellier",
"owner":2
}
,{
"id":4,
"make":"dahon",
"model":"tern A7",
"owner":2
}
]
} ]
, что хорошо.
Если я создам шаблон, который зацикливается в таблице,
<table>
<tr th:each="owner : ${owners}">
<td th:text="${owner.userName}"></td>
<td th:text="${owner.bicycles[0].make}"
th:if="${#lists.size(owner.bicycles)} > 0">"</td>
<td th:text="${owner.bicycles[0].model}"
th:if="${#lists.size(owner.bicycles)} > 0"></td>
</tr>
</table>
тогда я получаю ожидаемый результат в браузере.Я понимаю, что вышеприведенный код ужасен, но я просто заинтересован в том, чтобы заставить тимелиф работать на данный момент.
Но если я сделаю следующий код
<table>
<tr th:each="owner : ${owners}">
<td th:text="${owner.userName}"></td>
<tr th:each="bike : ${owner.bicycles}">
<td th:text="${bike.make}"></td>
<td th:text="${bike.model}"></td>
</tr>
</tr>
</table>
, я получу следующую ошибку консоли
вложенным исключением является org.thymeleaf.exceptions.TemplateProcessingException: исключение, оценивающее выражение SpringEL: "owner.bicycles" (template: "nutsthymeleaf" - строка 23, столбец 15)] с основной причиной
org.springframework.expression.spel.SpelEvaluationException: EL1007E: Свойство или поле 'велосипеды' не могут быть найдены в null
Что меня смущает, так это то, что owner.bicycle [index] работает.Это показывает марку и модель.Тем не менее, как видно из ошибки, owner.bicycles является пустым полем.
Так что, очевидно, я что-то делаю не так ...