gpt4 book ai didi

java - Spring Boot/Thymeleaf - 循环中的循环

转载 作者:行者123 更新时间:2023-12-02 04:00:11 27 4
gpt4 key购买 nike

我有一个应用程序,其中两个实体具有双向一对多关系。车主和自行车。

因此通过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>

然后我在浏览器中得到了预期的结果。我意识到上面的代码很糟糕,但我现在只是想让 thymeleaf 工作起来。

但是如果我执行以下代码

<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>

然后我收到以下控制台错误

nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "owner.bicycles" (template: "nutsthymeleaf" - line 23, col 15)] with root cause

org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'bicycles' cannot be found on null

令我困惑的是,owner.bicycle[index] 可以工作。它显示品牌和型号。然而,根据错误,owner.bicycles 似乎是一个空字段。

很明显我做错了什么......

最佳答案

所以我找到了这个

Thymeleaf: Getting Property or field cannot be found on null. Iteration of list inside a list

这样就停止了 SpelException。

经过尝试,它不需要 3 个级别,而只需要两个。如果 th:each 嵌套在 th:each 中,就会出现问题。第二个 th:each 必须位于 th:block(或可能是 div)中。

关于java - Spring Boot/Thymeleaf - 循环中的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com