我在Spring项目中使用Thymeleaf,我需要显示一个列表,这是其中一个案例的结果,但我不知道如何。
这是代码:
<!--Global validation results-->
<div th:if="${#fields.hasErrors('global')}">
<div class="alert alert-danger" role="alert"
th:each="err : ${#fields.errors('global')}">
<div th:switch="${err}">
<div th:case="error.fromAfterTo" th:text="#{error.fromAfterTo}"></div>
<div th:case="error.overlaps" th:text="#{error.overlaps}">
<ul th:each="interval : ${dateOverlaps}">
<li th:text="${#temporals.format(interval.datefrom, 'dd/MM/yyyy')} +
' - ' + ${#temporals.format(interval.dateto, 'dd/MM/yyyy')}">
</li>
</ul>
</div>
</div>
</div>
th:case =“error.overlaps”有效,但是当在switch语句之外设置时,列表就会出现。
提前感谢您的帮助。
Aleix
答案 0 :(得分:0)
th:case="error.overlaps"
与
th:case="#{error.overlaps}"
让我知道这是否适合你
答案 1 :(得分:0)
评估th:text
的{{1}}属性将此评估的结果设置为它所在的#{error.overlaps}
标记的正文,有效地用您的循环替换评估结果。这就是你在交换机外看到列表的原因。
详情here。
答案 2 :(得分:0)
这是最终的代码,它按预期工作:
<!--Global validation results-->
<div th:if="${#fields.hasErrors('global')}">
<div class="alert alert-danger" role="alert"
th:each="err : ${#fields.errors('global')}">
<div th:switch="${err}">
<div th:case="error.fromAfterTo" th:text="# error.fromAfterTo}"></div>
<div th:case="error.overlaps">
<p th:text="#{error.overlaps}"></p>
<ul th:each="interval : ${dateOverlaps}">
<li th:text="${#temporals.format(interval.datefrom, 'dd/MM/yyyy')}
+ ' - ' + ${#temporals.format(interval.dateto, 'dd/MM/yyyy')}">
</li>
</ul>
</div>
</div>
</div>
</div><!--Global validation results-->
再次感谢您的帮助。