有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在显示PostgreSQL数据库中的数据时遇到问题

我的问题是关于thymeleaf模板系统。我对使用SpringBoot还比较陌生,我有一个post对象来存储我博客的信息。我制作了一个控制器来发布我的新帖子,然后我使用Getmapping为我的博客页面提供数据库中的信息(在本例中,它是从帖子存储库返回的帖子列表)

package com.blog.blog.Controllers;

import com.blog.blog.Entities.Post;
import com.blog.blog.Repositories.PostRep;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;


@Controller
public class PostController {

    @Autowired
    private PostRep postRep;

    @GetMapping("/blog")
    public String nPostForm(Model model){
        //newpost is the binding object for html, contains the objects itself and th:field="*{}" is its respective item
        model.addAttribute("posts", this.postRep.findAll());
        System.out.println(this.postRep.findAll().toString());
        return "blog";
    }


    @PostMapping("/newpost")
    public String nPostSubmit(@ModelAttribute Post post, Model model){
        model.addAttribute("newpost",post);
        //here i get the post object with its variables
        this.postRep.save(post);
        System.out.println("Sent");
        return "newpost";
    }

}

这是我的HTML模板,它应该遍历列表并用数据库中的数据替换文本,但在运行它时,源代码中发生的事情是,它没有填充“title”或“content”的文本,而是看到有两篇文章是正确的,并且正确地实例化了两个div,但它没有使用“th:text”用我的文章数据替换文本

<!DOCTYPE HTML>
<html xmlns:th="https://www.thymeleaf.org">
<head>
    <title>Getting Started: Handling Form Submission</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

</head>
<body>
<div class="container" >
    <div th:if="${posts.empty}">
        <span>There are no posts!</span>
    </div>
    <div th:each="nPost : ${posts}">
        <h1 th.text="nPost.title">title: </h1>
        <p th.text="nPost.content">content: </p>
    </div>
</div>


<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
</body>
</html>

最后,我正确地从数据库中检索数据,因为当我从存储库中提取时,我可以在控制台中打印标题和内容


共 (0) 个答案