Springboot + thymeleaf在html表中显示数据库内容

我正在尝试学习如何使用springboot和thymeleaf制作Web应用程序。作为练习,我想显示一个我在mysql(人)中创建的随机数据库表的两列,它们是一个简单的html表。

我为此使用了一些教程,并在下面编写了代码,但是我的html只显示表头而不显示数据库的内容。我完全不知道我哪里弄错了。我在这里查找了其他问题,他们都使用了称为jpa的东西。那比我的方法好吗?如果是这样,我在哪里可以找到入门指南。

应用程式类别

package ro.database.jdbcTest;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.scheduling.annotation.EnableAsync;

import ro.database.jdbcTest.controllers.UsersController;

@SpringBootApplication

@EnableAsync

public class App

{

@Autowired

UsersController service;

public static void main( String[] args )

{

SpringApplication.run(App.class);

}

}

控制器

package ro.database.jdbcTest.controllers;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import ro.database.jdbcTest.model.Users;

import ro.database.jdbcTest.services.UserService;

import java.util.List;

import java.util.Map;

@Controller

public class UsersController {

@Autowired

UserService service;

@RequestMapping(value = "/user", method = RequestMethod.GET)

public String index(Model md){

md.addAttribute("user", service.findAll());

return "user";

}

}

服务等级

package ro.database.jdbcTest.services;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowMapper;

import org.springframework.stereotype.Service;

import ro.database.jdbcTest.model.Users;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.List;

@Service

public class UserService {

@Autowired

JdbcTemplate template;

public List<Users> findAll() {

String sql = "select * from people";

RowMapper<Users> rm = new RowMapper<Users>() {

@Override

public Users mapRow(ResultSet resultSet, int i) throws SQLException {

Users user = new Users(resultSet.getInt("id"),

resultSet.getString("name"),

resultSet.getInt("age"));

String email = resultSet.getString("email");

if (email != null) {

user.setEmail(email);

}

return user;

}

};

return template.query(sql, rm);

}

和模特班

package ro.database.jdbcTest.model;

public class Users {

private int id;

private String name;

private int age;

private String email;

public Users(int id, String name, int age){

this.id=id;

this.name=name;

this.age=age;

}

public void setEmail(String email){

this.email=email;

}

}

HTML

<!DOCTYPE html>

<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">

<head>

<meta charset="UTF-8">

<title>Title</title>

</head>

<body>

<h2>Users</h2>

<table border="1">

<tr>

<th>name</th>

<th>age</th>

</tr>

<tr th:each = "user: ${users}">

<td th:text="${user.name}">vasile</td>

<td th:text="${user.age}">45</td>

</tr>

</table>

</body>

</html>

回答:

您已在中的变量user中绑定了Users modelAttribute。尝试users在用作users列表的HTML中作为原因进行绑定

md.addAttribute("users", service.findAll());

return "user";

以上是 Springboot + thymeleaf在html表中显示数据库内容 的全部内容, 来源链接: utcz.com/qa/435358.html

回到顶部