如何将两个不同的 ArrayList 从 Servlet 发送到 JSP

Posted

技术标签:

【中文标题】如何将两个不同的 ArrayList 从 Servlet 发送到 JSP【英文标题】:How to send two different ArrayList from a Servlet to a JSP 【发布时间】:2016-04-01 18:22:09 【问题描述】:

我会尽量用几行来说明清楚,只显示基本代码。 正如我在标题中所说,我必须将两个数组列表从一个 servlet 发送到一个 JSP 页面。不幸的是,我不知道如何将多个数组列表发送到 JSP,但我只知道如何发送一个。我通常使用这个程序:

例子

ArrayList<ClassA> array_A = new ArrayList<ClassA>();

// [...] After some operations and have filled the array_A with objects of class ClassA

ServletContext sc = request.getSession().getServletContext();
request.setAttribute("Attribute", array_A);
RequestDispatcher rd = sc.getRequestDispatcher("/MyJSP.jsp");
rd.forward(request,response);
request.getSession().removeAttribute("Attribute");

此过程允许我将一个数组列表发送到 JSP 页面。如何发送两个不同的arraylist?比如我需要发送这两个arraylist:

ArrayList<ClassA> array_A = new ArrayList<ClassA>();
ArrayList<ClassB> array_B = new ArrayList<ClassB>();

// [...] After some operations and have filled array_A with objects of class ClassA 
// & array_B with objects of class ClassB

如何将这两个数组从 servlet 发送到 JSP 页面?你能把代码分享给我吗?如果我没有那么严格,我很抱歉。

【问题讨论】:

将另一个放在第二个请求属性中,使用不同的名称。 @JBNizet 只需添加另一个 request.setAttribute ("Attribute_two", array_B);紧接在第一个之后? 之后或之前,都没有关系。一个请求有很多属性。一个属性有一个名字和一个可以是任何东西的值。最后,您将请求转发给 JSP,JSP 因此可以从请求中获取 servlet 之前存储的所有属性。这基本上就像把各种各样的东西放在一个盒子里,然后把盒子送给别人。 非常感谢您的解释,找到解决方案非常有帮助:-) 【参考方案1】:
request.setAttribute("array_A", array_A);
request.setAttribute("array_B", array_B);

jsp内(使用jstl核心库时,前缀c

<c:forEach var="itemA" items="$array_A">
      <!-- some code here -->
</c:forEach>

<c:forEach var="itemB" items="$array_B">
      <!-- some code here -->
</c:forEach>

【讨论】:

非常感谢您的回答,问题已解决:-)

以上是关于如何将两个不同的 ArrayList 从 Servlet 发送到 JSP的主要内容,如果未能解决你的问题,请参考以下文章

如何阅读管道分隔线 |来自一个文件并在两个不同的 ArrayList 中拆分整数

如何使用SERV-U设置服务器啊?

如果列表包含不同的类,如何使用 gson 将 json 转换为 arraylist?

如何在不同的类类型 ArrayList 中使用相同的方法?

ArrayList与HashMap的用法

如何连接两个 ArrayList?