【发布时间】:2021-06-02 14:15:46
【问题描述】:
我有一个 html thymeleaf 模板,我在其中构建了一个迭代列表的表:
<table>
<tr>
<th>Setup Name</th>
<th>Setup Path</th>
</tr>
<tr th:each="setup : ${upgradeState.targetUpgradeSetups.setups}">
<td th:text="${setup.name}"/>
<td th:text="${setup.path}"/>
</tr>
</table>
问题是元素upgradeState.targetUpgradeSetups可能是null,所以我想只在元素不为空的时候建这个表。
注意:如果元素
upgradeState.targetUpgradeSetups不是null,那么保证列表setups也不为空。因此我只需要检查父元素。
我尝试使用th:if 语句如下:
<tr th:if=${upgradeState.targetUpgradeSetups != null} th:each="setup : ${upgradeState.targetUpgradeSetups.setups}">
但即便如此,我仍然遇到同样的异常:
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'setups' cannot be found on null
at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:213)
at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:104)
at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000(PropertyOrFieldReference.java:51)
at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue(PropertyOrFieldReference.java:406)
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:90)
at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:109)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:328)
at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:263)
... 74 more
我没有找到关于 Thymeleaf 的特定示例/参考来解决此类问题,有人可以建议正确的方法吗?
【问题讨论】:
标签: java spring-boot thymeleaf