从控制器传递值以查看Spring MVC

时间:2018-12-18 14:02:43

标签: spring-mvc spring-boot

我对春天很陌生。从我的控制器中,我得到了列表输出。

[[Article@42e72033 id = 1, title = 'Hello', description = 'Description', author = 'eeee'], [Article@7702e860 id = 2, title = 'Hello', description = 'Description', author = 'eeee'], [Article@3c2731ff id = 3, title = 'Hello', description = 'Description', author = 'eeee'], [Article@157e7973 id = 4, title = 'qqqq', description = 'qqqqq', author = 'qqqqq']] 我想在我的article / view.html中使用标题,描述和作者,当前看起来像这样:

<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org" th:replace="~{fragments/layout :: layout (~{::body},'owners')}">

<body>


<table id="vets" class="table table-striped">
    <thead>
    <tr>
        <th style="width: 150px;">Title</th>

        <th>Description</th>
        <th style="width: 120px">Author</th>

    </tr>
    </thead>

    <tbody>

    </tbody>
</table>

</body>
</html>

如何从列表中获取值并显示在正文部分?

2 个答案:

答案 0 :(得分:3)

首先,您需要确保呈现视图的控制器将List属性传递给模型。如果您提供的list属性称为article,那么您的body标签应为该列表配置一个迭代器,例如:

<tbody>
<tr th:each="article : ${articles}">
<td th:text="${article.title}"><td>
<td th:text="${article.description}"><td>
</tr>
</tbody>

答案 1 :(得分:1)

mkez00的答案(+1)将解决您的问题。仍然我想向您展示没有任何模板引擎(Thymeleaf)的相同事物,就像您说的您对Spring来说是新手一样。

首先需要了解的几件事:

[这些来自JavaEE 5教程,但仍然相关。用各种可用资源做您自己的研究!]

现在解决您的问题,如果您将List对象中的Article对象放入控制器中的模型中,如下所示:

model.put("articles", yourListOfArticles);

在视图中(此处为JSP),您可以执行以下操作以显示所需的表:

articles.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
    <title>Foo</title>
</head>

<body>
    <table id="vets" class="table table-striped">
        <thead>
            <tr>
                <th style="width: 150px;">Title</th>
                <th>Description</th>
                <th style="width: 120px">Author</th>
            </tr>
        </thead>

        <tbody>
            <c:forEach items="${articles}" var="article">
                <tr>
                    <td><c:out value="${article.title}"/></td>
                    <td><c:out value="${article.description}"/></td>
                    <td><c:out value="${article.author}"/></td>
                </tr>
            </c:forEach>
        </tbody>
    </table>
</body>
</html>