【问题标题】:displaying data in one page spring mvc在一页spring mvc中显示数据
【发布时间】:2013-11-18 18:31:29
【问题描述】:

我不明白问题出在哪里,显示数据。他有标题(名称、价格和数量),但没有数据

这里是控制器

@Controller
public class ProductListController {

        @Autowired ProductRepository productRepository;

        @RequestMapping("/productlist")
        public ModelAndView showProductList() {
            ModelAndView mv = new ModelAndView("productlist");  
            List<Product> list = productRepository.findAll();
            mv.addObject("displayProduct",list);
            return mv;
        }

    }

这是productlist.jsp

<!DOCTYPE html >
<%@  page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<%@  taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>
<%@  taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>

<html>
<head>
   <title>Product</title>
</head>
<body>
<form:form method="POST" modelAttribute="displayProduct">
<table border="1" >
 <tr>
   <td>Name</td>
   <td>Price</td>
   <td>Quantity</td>
 </tr>
<c:forEach items="${displayProduct}" var="p">
   <c:out value="${p.name}"/>
</c:forEach>

</table>

</body>
</html>

【问题讨论】:

  • 向我们展示您的Product 课程。

标签: jsp spring-mvc


【解决方案1】:

确保呈现正确的标记。

<c:forEach items="${displayProduct}" var="p">
    <tr>
        <td><c:out value="${p.name}"/></td>
        <td><c:out value="${p.price}"/></td>
        <td><c:out value="${p.quantity}"/></td>
    </tr>
</c:forEach>

另外,请确保productRepository.findAll() 实际上返回了一些结果。如果它是一个空结果集,您将在 JSP 上看不到任何内容。

【讨论】:

  • 另外,form 没有关闭。
【解决方案2】:

我使用 consol 显示结果的方式测试了 productRepository.findAll() 方法,并按照您的建议更改了我的代码。我总是遇到同样的问题

<!DOCTYPE html >
<%@  page language="java" contentType="text/html; charset=ISO-8859-1"  pageEncoding="ISO-8859-1"%>
<%@  taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>
<%@  taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>

<html>
<head>
   <title>Product</title>
</head>
<body>
    <form:form method="POST" modelAttribute="displayProduct">
    <h1>Product</h1>

    <table border="1" >

        <tr>
            <td>Name</td>
            <td>Price</td>
            <td>Quantity</td>
            <td colspan="2">Actions</td>

        </tr>

    <c:forEach items="${displayProduct}" var="p">
       <tr>
        <td><c:out value="${p.name}"/></td>
        <td><c:out value="${p.price}"/></td>
        <td><c:out value="${p.quantity}"/></td>
      </tr>
    </c:forEach>


    </table>

    <a href="<c:url value='/'/>">home page</a><br/>
    </form:form>


</body>
</html>

【讨论】:

    【解决方案3】:

    很高兴看到您的 Product 对象。 你有getName()、getPrice()和getQuantity()这三个getter吗?

    您的产品 pojo 必须与 JavaBeans 命名约定匹配以与 JSP 表达式语言一起使用:${p.name}、${p.price} 和 ${p.quantity}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 2017-08-02
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多