我正在尝试在 thymeleaf 中生成一个表,其中的数据来自 springboot 后端。summaryList 是 List 对象,其中 SummaryDTO 具有 aliquotID、ic50、fold、refID、ic50_ref 属性。
我的要求是在我的表格中,我需要在标题名称、IC50、折叠下将数据显示为两行。因此 refid 值位于名称标题下,ic50_ref 值位于折叠下。我尝试了下面的代码,但得到了 org.springframework.expression。 spel.SpelEvaluationException:EL1007E:在 null 上找不到属性或字段“aliquotID”。请建议如何解决此问题。
<table border="1" cellpadding="10">
<thead>
<tr>
<th>Name</th>
<th>IC50</th>
<th>Fold</th>
</tr>
</thead>
<tbody>
<tr th:if="${#lists.isEmpty(summaryList)}">
<td colspan="9">no data</td>
</tr>
<p>List Size: [[${summaryList.size()}]]</p>
<tr th:each="dto: ${summaryList}">
<tr>
<td th:text="${dto.aliquotID}"></td>
<td th:text="${dto.ic50}"></td>
<td th:text="${dto.fold}"></td>
</tr>
<tr>
<td th:text="${dto.refID}"></td>
<td th:text="${dto.ic50_ref}"></td>
</tr>
</tr>
</tbody>
</table>
您给出的错误是说您的
${summaryList}
中有空元素...如果${summaryList}
包含空元素(而不是您声称的SummaryDTO
),那么您将收到您给出的错误消息).
至于表格本身,它应该是这样的:
<table border="1" cellpadding="10">
<thead>
<tr>
<th>Name</th>
<th>IC50</th>
<th>Fold</th>
</tr>
</thead>
<tbody>
<tr th:if="${#lists.isEmpty(summaryList)}"><td colspan="9">no data</td></tr>
<p>List Size: [[${summaryList.size()}]]</p>
<th:block th:each="dto: ${summaryList}">
<tr>
<td th:text="${dto.aliquotID}"></td>
<td th:text="${dto.ic50}"></td>
<td th:text="${dto.fold}"></td>
</tr>
<tr>
<td th:text="${dto.refID}"></td>
<td th:text="${dto.ic50_ref}"></td>
</tr>
</th:block>
</tbody>
</table>
使用
th:block
而不是 tr
将为您提供有效的 HTML(除了 p
标签...)并且不嵌套 tr
。