首页 > 解决方案 > 如何在 Thymeleaf 每个循环中编写条件表达式?

问题描述

我正在构建一个嵌套导航,显示th:fragments已添加到 HTML 文档的一部分:

<ul>
  <li th:each="section : ${content.getFragments()}">
    <ul>
      <li th:each="subsection : ${subsection.getSubsections()}" th:text="${subsection.title}">Default Subsection</li>
    </ul>
</ul>

section问题是如果 some包含 no ,则会产生错误subsection

如何检查 a 是否section包含subsections

标签: spring-mvcthymeleaf

解决方案


我认为你应该重新考虑你的方法。一般来说,我尽量不向 UI/Web 层返回空列表。这使得这样的情况更容易处理。您应该返回一个空列表。

在这种特定情况下,subsection应该是一个空列表。

如果这是您无法控制的,您可以检查列表列表是否为空,例如:

<ul>
  <li th:each="section : ${content.getFragments()}">
    <ul th:if= "${subsection != null}">
      <li th:each="subsection : ${subsection.getSubsections()}" th:text="${subsection.title}">Default Subsection</li>
    </ul>
</ul>

推荐阅读