我是jsp的新手,面临一个问题。我需要创建jsp页面,它显示来自servlet的数据。 Servlet代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
CustomersDao customersDao = new CustomersDaoImpl();
List<Customers> custList = customersDao.getAllCustomers();
request.setAttribute("customersList", custList);
request.getRequestDispatcher("/test.jsp").forward(request, response);
}
jsp页面代码:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Test Page</title>
</head>
<body>
<%-->
<table border="1">
<tr>
<td>${requestScope['customers'].name}</td>
<td>${requestScope['customers'].lastname}</td>
<td>${requestScope['customers'].totalAmount}</td>
</tr>
</table>
<--%>
<table border="1">
<c:forEach var="element" items="${requestScope['customersList']}">
<tr>
<td><c:out value="${element.name}" /> TEST.name</td>
<td>${element.lastname} TEST.lastname</td>
<td>${element.totalAmount} TEST.totalAmount</td>
<td> ololo </td>
</tr>
</c:forEach>
</table>
</body>
</html>
当我向jsp发送单个对象时,它正常工作(代码部分的注释)。但是当我尝试发送列表时,我无法分开对象和浏览器显示我只测试消息。那么我该如何解决呢?
答案 0 :(得分:1)
当我向jsp发送单个对象时,它正常工作(代码部分的注释)。但是当我尝试发送列表时,我无法将对象和浏览器分开,只显示测试消息。
您忘记了包含核心标记库。这就是为什么<c:forEach>
不能正常工作的原因,但如果你只传递一个对象就行。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>