在 thymeleaf 中划分数据以在单独的行中显示

问题描述 投票:0回答:1

我正在尝试在 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>
html thymeleaf
1个回答
0
投票

您给出的错误是说您的

${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

© www.soinside.com 2019 - 2024. All rights reserved.