gpt4 book ai didi

spring-mvc - 在虚假的:if上执行的ThymeLeaf片段

转载 作者:行者123 更新时间:2023-12-03 15:25:54 33 4
gpt4 key购买 nike

我正在使用包装有Spring-Boot的Thymeleaf。这是主要模板:

<div class="container">
<table th:replace="fragments/resultTable" th:if="${results}">
<tr>
<th>Talent</th>
<th>Score</th>
</tr>
<tr>
<td>Confidence</td>
<td>1.0</td>
</tr>
</table>
</div>

它使用以下片段:
<table th:fragment="resultTable">
<tr>
<th>Talent</th>
<th>Score</th>
</tr>
<tr th:each="talent : ${talents}">
<td th:text="${talent}">Talent</td>
<td th:text="${results.getScore(talent)}">1.0</td>
</tr>
</table>

该片段仅在有结果对象的情况下有效。这对我来说很有意义。因此,基于 documentation的语法,我将 th:if语句添加到了主模板文件中。但是,当我在没有对象的情况下访问模板时,仍然出现此错误
Attempted to call method getScore(com.model.Talent) on null context object
th:if语句不应该阻止该代码被访问吗?

当填充结果对象时,模板仍然可以正常工作,但是如何在不使用表的情况下呈现空大小写呢?

最佳答案

片段包含比th:if具有更高的运算符优先级。

http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#attribute-precedence

您可能必须将th:if移至上方的标签。在容器div中,或者如果仍然需要容器div,则可以使用如下所示的th:block:

<div class="container">
<th:block th:if="${results}">
<table th:replace="fragments/resultTable">
<tr>
<th>Talent</th>
<th>Score</th>
</tr>
<tr>
<td>Confidence</td>
<td>1.0</td>
</tr>
</table>
</th:block>
</div>

关于spring-mvc - 在虚假的:if上执行的ThymeLeaf片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129001/

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