我不明白问题所在,要显示数据。他有标题(名称,价格和数量),但没有数据
这是控制器
@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>
答案 0 :(得分:0)
确保渲染正确的标记。
<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上的任何内容。
答案 1 :(得分:0)
我使用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>
答案 2 :(得分:0)
很高兴看到你的Product对象。 你有三个getter get(),getPrice()和getQuantity()吗?
您的Product pojo必须与要与JSP表达式语言一起使用的JavaBeans命名约定匹配:$ {p.name},$ {p.price}和$ {p.quantity}