-1

通常我可以在旧问题中找到 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 可能会导致该问题?提前致谢!

4

1 回答 1

0

在您jsp中,您指的是客户列表customers。然而,这只是getAllCustomers控制器方法上下文中的有效标识符。

试试看customersList并查阅 JavaDocModelAndView

于 2017-01-05T22:28:59.433 回答