通常我可以在旧问题中找到 StackOverflow 社区提供的解决方案。这一次我的大脑停止工作了,我猜...
我要做的只是显示我从 MySQL 数据库中取出的客户列表。一切都很好,但是当我将列表从控制器传递到视图时,我无法在 jsp 文件中使用它,因为它似乎超出了范围(?)。
如果您能提出任何解决方案/链接/教程,我将非常感激
客户道:
public List<Customer> getAllCustomers()
{
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("library-manager");
EntityManager entityManager = entityManagerFactory.createEntityManager();
TypedQuery<Customer> query = entityManager.createQuery("select e from Customer e", Customer.class);
List<Customer> customers = query.getResultList();
entityManager.close();
entityManagerFactory.close();
return customers;
}
客户控制器:
@RequestMapping(value = "/getAllCustomers")
public ModelAndView getAllCustomers(){
List<Customer> customers = customerDAO.getAllCustomers();
return new ModelAndView("getAllCustomers", "customersList", customers);
}
此时我不知道如何在我的 jsp 文件 (getAllCustomers.jsp) 中访问此列表。当我尝试在 Java 块 <% %> 中访问它时,我会收到简单的错误,例如:
“客户无法解析为变量”
getAllCustomers.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="db_objects.Customer" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>List of all customers:</h2>
<%
for(Customer customer : customers){
out.println(customer.getCustomerFirstName);
out.println(customer.getCustomerLastName);
out.println(customer.getCustomerContactNumber);
}
%>
</body>
</html>
我希望你能在这里找到一些耐心来帮助我:)
编辑
我得到了一些信息,我的问题可能与这个问题相同
我不确定它是否是自动系统,但我的问题不是如何使用 for 循环,而是如何通过 ModelAndView 将集合传递给 jsp。
编辑2
我刚刚弄清楚@RamPrakash 的意思。明天我会尝试他的解决方案。但在那之前,也许来自不同时区的人可以回答是否使用 scriptlet 而不是 JSTL 可能会导致该问题?提前致谢!