spring-boot - 如何在 Spring Boot 中使用 c:forEach 在 jsp 文件中打印多个对象值?
问题描述
我是 Spring Boot 框架的新手。我正在尝试在 jsp 文件中打印/显示数据库中的多行。我能够在 jsp 文件中打印单个对象值,但无法打印多个对象值。这些是我的 pom.xml 文件中的依赖项。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<version>9.0.22</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这是模型。
package com.basic.crudapp.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Post {
@Id
@GeneratedValue //it auto increments the id column value starting from 1
private int id;
private String title;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "Post{" +
"id=" + id +
", title='" + title + '\'' +
", content='" + content + '\'' +
'}';
}
}
这是控制器...
package com.basic.crudapp.controller;
import com.basic.crudapp.dao.PostRepo;
import com.basic.crudapp.model.Post;
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.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
public class PostController {
@Autowired
PostRepo repo;
@RequestMapping("/getAllPosts")
public ModelAndView allPost() {
// setting the view name using constructor
ModelAndView mv = new ModelAndView("post/index");
Iterable<Post> posts = repo.findAll();
mv.addObject(posts);
return mv;
}
}
这是 PostRepo...
package com.basic.crudapp.dao;
import com.basic.crudapp.model.Post;
import org.springframework.data.repository.CrudRepository;
public interface PostRepo extends CrudRepository<Post, Integer> {
}
最后这是jsp文件..
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>JSP page</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-6">
<h3>List of all posts</h3>
<c:forEach items="${posts}" var="post">
<tr>
<td>${post.id}</td>
<td>${post.title}</td>
<td>${post.content}</td>
</tr>
</c:forEach>
</div>
</div>
</div>
</body>
</html>
我已经使用资源目录中的 data.sql 文件在我的数据库的 Post 表中手动插入了五行。
我在哪里做错了?对不起,很长的帖子,但我是这个框架的新手,这就是我发布整个情况的原因。提前致谢...
解决方案
推荐阅读
- git - 如何在 Vercel 上使用带有 NextJS 的私有 git 存储库?
- sql - 是否有任何已发布的编码风格指南用于重命名 SQL 视图中的列?
- javascript - 在注销 Web 应用程序的过程中,如何防止在分钟计时器循环上调用 API?
- playwright - 有关成功测试的更多信息?
- python - 对 API 请求的输出数据进行子集化
- java - org.openqa.selenium.remote.UnreachableBrowserException:
- driver - 使用混合模拟/数字电视/调频收音机加密狗进行通信
- google-analytics - 在 Google Analytics 中使用事件作为视图排除过滤器
- php - 我需要 Windows 用户 id apache 2.4 / PHP
- python - 蟒蛇 | 获取二维列表的第一个元素