【发布时间】:2014-02-18 09:38:20
【问题描述】:
我正在尝试创建一个包含不同大小表格的 JSP 主页。我想使用 forEach JSTL 标记。 servlet 工作正常,并且正在生成两个产品的列表。但是,此信息不会出现在最终的 HTML 中。
如果我打电话:
http://localhost:8080/JavaIntoJSP/products
输出不错。
如果我打电话:
http://localhost:8080/JavaIntoJSP/default.jsp
输出丢失
代码如下(default.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix= "c" %>
<!DOCTYPE html>
<html>
<head>
<title>default</title>
</head>
<body>
<form action="products" method="get">
<table>
<c:forEach items="${products}" var="product" >
<tr>
<td><c:out value="${product.name}" /></td>
<td><c:out value="${product.price}" /></td>
<td><c:out value="${product.category}" /></td>
<td><c:out value="${product.units}" /></td>
</tr>
</c:forEach>
</table>
</form>
<h1>try again</h1>
</body>
</html>
Servlet 有以下内容
@WebServlet("/products")
public class ProductServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ProductServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Product> products = new ArrayList<Product>();
Product prod1 = new Product();
prod1 = prod1.returnProduct();
products.add(prod1);
Product prod2 = new Product();
prod2 = prod2.returnProduct();
prod2 = prod2.returnProduct();
products.add(prod2);
request.setAttribute("products", products);
request.getRequestDispatcher("default.jsp").forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
谁能告诉我为什么在 JSP 上找不到这些产品?
【问题讨论】:
-
尝试显示页面时,浏览器地址栏中显示的 URL 是什么?