如何在Thymeleaf中显示每个循环的对象集合?

我想用Spring MVC在浏览器中显示数据库中的数据.一切都没问题,除了每个循环的Thymeleaf模板.那里出了点问题.

如何在ID行中显示id数据,在Name行中显示名称数据,迭代每个循环的对象集合?

源代码:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
     <title>Getting Started: Serving Web Content</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <table border="1">
        <tr style="font-size: 13">
            <td>ID</td>
            <td>Name</td>
        </tr>
        <tr th:each="count :  ${id}">
            <td><p th:text="${count}" /></td>       
            <td><p th:text="${name}" /></td>        

        </tr>
    </table>
</body>
</html>
最佳答案
你的问题不是很明确,因为你没有指定你的计数对象,也没有显示你的控制器.

假设您有一些具有字段ID和名称的实体Count,您将其保存在数据库的相应表中,并且您希望在Thymeleaf模板中显示该实体.

要从数据库中检索数据,您需要一些Service或Repository类,它应该具有返回实体List的方法,例如此类服务方法listAll():

public List<Count> listAll() {
    List<Count> counts = new ArrayList<>();
    countRepository.findAll().forEach(counts::add);
    return counts;
}

然后,您需要在控制器中设置请求映射,并在该方法中添加一个属性到模型对象,这将是执行listAll()方法的结果.可以这样做:

@RequestMapping("/list")
public String countsList(Model model) {
    model.addAttribute("counts", countService.listAll());
    return "list";
}

最后回答您的问题,您的list.html模板应该包含块:

<div th:if="${not #lists.isEmpty(counts)}">
    <h2>Counts List</h2>
    <table class="table table-striped">
        <tr>
            <th>Id</th>
            <th>Name</th>
        </tr>
        <tr th:each="count : ${counts}">
            <td th:text="${count.id}"></td>
            <td th:text="${count.name}"></td>
        </tr>
    </table>
</div>

阅读Thymeleaf文档 – Iteration Basics部分中的更多信息.

转载注明原文:如何在Thymeleaf中显示每个循环的对象集合? - 代码日志