【问题标题】:How to write conditional expression in Thymeleaf each loop?如何在 Thymeleaf 每个循环中编写条件表达式?
【发布时间】:2018-12-16 10:25:37
【问题描述】:

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

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

问题是,如果某些section 不包含subsection,则会产生错误。

如何检查section 是否包含subsections

【问题讨论】:

    标签: spring-mvc thymeleaf


    【解决方案1】:

    我认为你应该重新考虑你的方法。一般来说,我尽量不向 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>
    

    【讨论】:

    • 非常好,非常感谢。为了完整起见,有没有办法使用带有? &lt;something&gt; : &lt;otherthing&gt;的条件表达式来做到这一点?
    • 可能是这样的?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签