简体   繁体   English

春天百里香没有遍历列表

[英]Spring thymeleaf doesn't iterate over list

I am trying to iterate over an List and show the results in a table, but the table stays empty. 我试图遍历一个List并在一个表中显示结果,但是该表保持为空。

Controller 控制者

@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 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 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;
    }
}

I expected do see 10 rows with the same information of the OrderNotify objects of the list, but it was empty. 我预计会看到10行具有与列表的OrderNotify对象相同的信息,但它为空。 I looked at the source code in the browser and got following result: 我在浏览器中查看了源代码,并得到以下结果:

  <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 and JSP are two different server side rendering templates. Thymeleaf和JSP是两个不同的服务器端渲染模板。 You can't use them simultaneously without configurations. 没有配置,您将无法同时使用它们。

Basing on your codes, you should update settings for using Thymeleaf: 根据您的代码,您应该更新使用Thymeleaf的设置:
a. 一种。 change home.jsp to home.html 将home.jsp更改为home.html
b. b。 move home.html to the path: src/main/resources/templates 将home.html移至路径:src / main / resources / templates
c. C。 config Thymeleaf in application.properties: 在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. d。 config Thymeleaf dependency in pom.xml pom.xml中的配置Thymeleaf依赖项

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


For Viewing templates, SpringBoot recommends use Thymeleaf instead of JSP, see more for details. 对于Viewing模板,SpringBoot建议使用Thymeleaf而不是JSP,有关详细信息,请参阅更多内容。

For using Thymeleaf and JSP simultaneously in SpringBoot app, you need to configure more. 为了在SpringBoot应用程序中同时使用Thymeleaf和JSP,您需要配置更多。 Below articles for your reference: 以下文章供您参考:
Using both Thymeleaf and JSP 同时使用Thymeleaf和JSP
https://www.oodlestechnologies.com/blogs/Use-Thymeleaf-And-JSP-Simultaneously-In-Spring-Boot-App/ https://www.oodlestechnologies.com/blogs/Use-Thymeleaf-And-JSP-Simultaneously-In-Spring-Boot-App/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM