如何将两个不同的 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 中拆分整数