当前位置: 首页 > 面试题库 >

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

暨鹭洋
2023-03-14
问题内容

我正在尝试学习如何使用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";


 类似资料:
  • 我想创建网站。我已经配置了登录“/login”和注册“/registration”页面。这个网站的主要任务是显示每个学生的时间表。现在我需要在页面“/Schedule”上显示科目列表,使用HTML-table,根据学生注册时选择的字段组和课程。我有14个不同的表格和科目列表(一个表格-一组学生)。 是否需要为每个表创建@Entity类和存储库? 如何使用注册数据显示学生信息? 页面“/计划”的控制

  • 问题内容: 我想从数据库表中检索值,并在页面的html表中显示它们。我已经在搜索这个,但是我找不到答案,尽管这肯定很容易(这应该是数据库的基础)。我想我搜索过的字词会误导我。数据库表名称是票据,它现在有6个字段(submission_id,formID,IP,名称,电子邮件和消息),但是应该有另一个字段称为ticket_number。我如何获取它以html表的形式显示db中所有的值: 然后是“ j

  • 问题内容: 已关闭 。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。 10个月前关闭。 好的,我在phpmyadmin(sql)上有一个数据库,我想将我的一个表显示为HTML / PHP上的表。我已经在网上搜索过,无法实现此功能,所以我想知道是否有人可以帮助我进行编码? 没有密码 我想显示表名中的数据 问题答案: 您说您在PhpMyAd

  • 我希望从数据库中获取所有表,并将每个表显示到一个表中。我没有运气能这么做。 下面是我的代码用来将表名存储到一个数组中的方法(这是可行的),但似乎不能在我的SQL查询中使用它来显示表。

  • 问题内容: 我正在使用jdbc编写程序,该程序将成为数据库的接口(类似于CRUD应用程序)。我假设我必须编写一个类(例如),该类将对数据库执行所有操作(以及可能会简化为这些操作的某些其他逻辑)。用户界面由一组表和一些按钮组成。要使用Jtable,我需要实现一个类(例如),它是AbstractTableModel的子类。因此,此类将向用户显示我的数据。我需要为数据库架构中的所有表实现这种模型。我不想

  • 这是我的数据库代码,我想从我的数据库中检索名称,并将其显示在listview中,在下面发布的另一个java文件中显示为profilelist.jar。但是我不能这样做,请告诉我这段代码是否正确? profileList.java 我在a.vaccination.datahandler.getTitle(datahandler.java:115)和a.vaccination.profilelist.

  • 我正在mongodb中存储博客帖子。帖子可以有新行(存储为)和/或锚标记。 通过在my thymeleaf视图中执行此操作,我可以显示新行: 但是锚标签显示为纯文本。 如何将来自控制器的锚标记格式化为指向另一个站点的实际链接?

  • 我正在使用Spring-Boot Thymeleaf制作带有上传菜单(图像)的小应用程序,我的上传菜单是工作的,所以要么是列表菜单上传,但问题是当我试图从netbeans中的静态文件夹显示我的图像到网页时,只有我的文件名显示出来,但我的图像没有显示出来。应该怎么样? 我从以前创建的listmenu中获取filedata图像。 我期望输出在网页是我的文件名(从图像)和图像显示。