java - Spring thymeleaf 不会遍历列表
问题描述
我正在尝试遍历 List 并在表格中显示结果,但表格保持为空。
控制器
@RequestMapping(value="/home")
public String home(Model model) throws IOException {
List<OrderNotify> notifications = new ArrayList<OrderNotify>();
for (int i = 0; i < 10; i++) {
OrderNotify notification = new OrderNotify("1", "2", "3", "4");
notifications.add(notification);
}
model.addAttribute("notifications", notifications);
return "home";
}
home.jsp - 表
<table id="handle" style=" margin:auto">
<tr>
<th>Bestellnummer</th>
<th>Datum</th>
<th>Status</th>
<th>Handlung erforderlich</th>
</tr>
<tr th:each="notify : ${notifications}">
<td th:text="${notify.orderid}"></td>
<td th:text="${notify.date}"></td>
<td th:text="${notify.status}"></td>
<td th:text="${notify.handle}"> </td>
</tr>
</table>
OrderNotify.java
public class OrderNotify {
public String orderid;
public String date;
public String status;
public String handle;
public OrderNotify(String orderid, String date, String status, String handle) {
this.orderid = orderid;
this.date = date;
this.status = status;
this.handle = handle;
}
public List<String> getAll(){
return null;
}
public String getOrderid() {
return orderid;
}
public void setOrderid(String orderid) {
this.orderid = orderid;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getHandle() {
return handle;
}
public void setHandle(String handle) {
this.handle = handle;
}
}
我预计确实会看到 10 行具有与列表的 OrderNotify 对象相同的信息,但它是空的。我在浏览器中查看了源代码,得到了以下结果:
<tr th:each="notify : [com.example.spring.utils.OrderNotify@42b3c931, com.example.spring.utils.OrderNotify@76af8a32, com.example.spring.utils.OrderNotify@28025a03, com.example.spring.utils.OrderNotify@5e6eadf0, com.example.spring.utils.OrderNotify@2481d4d, com.example.spring.utils.OrderNotify@83ce92c, com.example.spring.utils.OrderNotify@3254786a, com.example.spring.utils.OrderNotify@197e42fd, com.example.spring.utils.OrderNotify@5b1e86ea, com.example.spring.utils.OrderNotify@3484712c]">
<td th:text=""></td>
<td th:text=""></td>
<td th:text=""></td>
<td th:text=""> </td>
</tr>
解决方案
Thymeleaf 和 JSP 是两个不同的服务器端渲染模板。如果没有配置,您不能同时使用它们。
根据您的代码,您应该更新使用 Thymeleaf
的设置:将 home.jsp 更改为 home.html
b. 将 home.html 移动到路径:src/main/resources/templates
c. 在 application.properties 中配置 Thymeleaf:
# Thymeleaf
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.cache=false
d。在 pom.xml 中配置 Thymeleaf 依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
对于查看模板,SpringBoot 推荐使用 Thymeleaf 而不是 JSP,详情请查看。
在 SpringBoot 应用中同时使用 Thymeleaf 和 JSP,需要进行更多配置。以下文章供您参考:
同时使用 Thymeleaf 和 JSP
https://www.oodlestechnologies.com/blogs/Use-Thymeleaf-And-JSP-Simultaneously-In-Spring-Boot-App/
推荐阅读
- flutter - 如何在颤动中更改包装在标签内的容器的颜色
- php - 行大小问题 - 长度已满时不返回值(100 个字符)
- django - 为什么 Django 中的服务器没有运行?
- elixir - 将两个列表与地图进行比较
- google-chrome-extension - 从扩展程序向 GNome 桌面应用程序发送消息
- c++ - 在 C++ 中传递字符串 S 和字符串 S[ ] 之间的区别
- javascript - 如何从 NodeJS 中的 MySQL 查询中生成嵌套的 JSON 结果?
- javascript - 在 Redux 状态下删除嵌套对象中的项
- qt - Qt pinch 放大、缩小 (pinchArea)
- zapier - Zapier 潜在客户验证 CRM