我是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时,它可以正常工作(代码的注释部分)。但是,当我尝试发送列表时,我无法分离对象,浏览器仅向我显示测试消息。那么我该如何解决呢?
当我将单个对象发送到jsp时,它可以正常工作(代码的注释部分)。但是,当我尝试发送列表时,我无法分离对象,浏览器仅向我显示测试消息。
您忘记了包含核心标签库。这就是为什么<c:forEach>它不起作用,但是如果您仅传递单个对象,它将起作用。
<c:forEach>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>