如何将H2数据库数据渲染到Thymeleaf页面?问题求助
问题:H2数据库数据无法在Thymeleaf页面渲染展示
我正在尝试将H2数据库中的数据展示到Thymeleaf页面,但页面无法正常显示数据。已经搭建好Spring Boot项目,定义了Client实体类、ClientRepository仓库、ClientController控制器,并且在启动类中插入了测试数据。控制器已查询数据并传入Model,但Thymeleaf页面无法渲染出数据,怀疑是Thymeleaf语法问题,多次修改页面仍无效果。以下是项目相关代码及截图说明:
Client.java
package com.example.demo.entities; import java.io.Serializable; import java.util.Collection; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @Entity @Table(name = "clients") @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class Client implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private java.lang.String nom; @Column(name = "adress") private java.lang.String adresse; private String mail; private String telephone; public Client(String nom, String adresse) { super(); this.nom = nom; this.adresse = adresse; } public Client(String nom, String adresse, String mail, String telephone) { super(); this.nom = nom; this.adresse = adresse; this.mail = mail; this.telephone = telephone; } public Client() {}; }
ClientController.java
package com.example.demo.controller; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import com.example.demo.entities.Client; import com.example.demo.repository.ClientRepository; @Controller public class ClientController{ @Autowired public ClientRepository cr; @GetMapping("/") public String viewHomePage(Model model) { List <Client> list= cr.findAll(); model.addAttribute("list",list); return "home"; } }
ClientRepository.java
package com.example.demo.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.example.demo.entities.Client; @Repository public interface ClientRepository extends JpaRepository<Client,Long>{ }
Shop1Application.java(启动类)
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import com.example.demo.entities.Client; import com.example.demo.repository.ClientRepository; @SpringBootApplication public class Shop1Application { public static void main(String[] args) { ApplicationContext crt=SpringApplication.run(Shop1Application.class, args); ClientRepository cr=crt.getBean(ClientRepository.class); Client c1=new Client("Bilel","Hammamet","myemailis","123456"); Client c2=new Client("Wissal","Tunis","herrmail","1151"); Client c3=new Client("Mohamed","nabeul","hisemail","444"); Client c4=new Client("anas","Hammamet","his","55222"); Client c5=new Client("mourad","tunis","fffff","44"); cr.save(c1); cr.save(c2); cr.save(c3); cr.save(c4); cr.save(c5); } }
home.html
<!DOCTYPE html> <html xmlns:th="http//www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1 > Liste des clients de la base </h1> <div> <table> <tr> <th>ID</th><th>Nom</th><th>Adresse</th><th>Mail</th><th>telephone</th> </tr> <tr th:each="c:${list}"> <td th:text="${c.id}"></td> <td th:text="${c.nom}"></td> <td th:text="${c.adresse}"></td> <td th:text="${c.mail}"></td> <td th:text="${c.telephone}"></td> </tr> </table> </div> </body> </html>
截图说明
- 包结构截图:展示项目核心包层级,包含
entities、controller、repository等模块 - localhost:8080报错截图:页面访问时出现错误,无法正常渲染数据
- H2数据库截图:H2数据库的
clients表中已存在5条插入的测试数据
内容的提问来源于stack exchange,提问作者Bilel Guembri
相关产品推荐
相关产品推荐

