【问题标题】:Passing an ArrayList from a Servlet to JSP将 ArrayList 从 Servlet 传递到 JSP
【发布时间】:2011-05-20 11:02:16
【问题描述】:

我的模型以形式返回一个字符串数组列表给 servlet

ArrayList<String> currentCustomer = model.getAllCustomers();

我想将这个数组列表从 servlet 传递到 jsp 页面。我该怎么做呢?以下是我尝试过的

req.setAttribute("currentCustomer", currentCustomer);

在 jsp 页面中,我想使用 JSTL 循环遍历每个值并显示它。我怎么做?它让我沮丧到无止境。我搜索了网络但无济于事。非常感谢任何帮助。

这里是jsp代码

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>


<body>
    <div>
        <c:forEach var="customer" items="currentCustomer">
            ${customer}
        </c:forEach>
    </div>
</body>

【问题讨论】:

  • 您能给我们看看您的 web.xml 文件吗?请包含 元素及其所有属性。

标签: java model-view-controller jsp servlets jstl


【解决方案1】:

让我们让它工作:)

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<c:forEach var="customer" items="${currentCustomer}">
     <c:out value="${customer.name}" />
     <c:out value="${customer.age}" />
</c:forEach>

附: jsp:useBean 是另一种方式...

P.P.S.我还在 taglib 导入中进行了更正。当您查看两个不同的条目并认为它们是相同的时,这就是这些难以察觉的错误之一:)

【讨论】:

  • 是的,有。但即使在尝试之后,它们似乎也不起作用。这也不是..我必须在某处做
  • @Dhruv:您不需要 ,您的代码示例中的 currentCustomer 属性是一个字符串。如果您存储了除 String 之外的另一个类的对象,例如,您将需要它。一个客户对象。
  • @Dhruv:如果 Filip 的代码更正没有帮助,您可能以错误的方式引用 JSTL(可能是 JSTL 和 Servlet/JSP 版本的错误组合)。
【解决方案2】:

它的 allrite 伙计们,我解决了这个问题.. 感谢您的帮助..

显然我使用的代码已经过时(感谢互联网!)我在标题上写了这个:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

应该是这样的

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

【讨论】:

  • 另外,items 属性不正确。它不应该是 ,应该是
【解决方案3】:

它会像 smt 一样

<c:forEach var="currentCustomer" items="${customers}">
     ${currentCustomer.name}
     ${currentCustomer.age}
</c:forEach>

【讨论】:

  • 但是如何将arraylist返回给jsp本身?