在JSP页面之间传递列表/数组

时间:2011-09-30 17:59:43

标签: jsp

我正在尝试在我拥有的两个JSP页面之间传递List。这是我写的类的对象列表。

如何在JSP页面之间传递此列表? request.setAttribute似乎适用于字符串,但不适用于其他任何内容。并且,如果使用列表无法轻松完成此操作,我可以将列表转换为数组并以这种方式传递,没问题。

2 个答案:

答案 0 :(得分:5)

首先,一个非常糟糕的设计会导致诸如在不同JSP页面之间传递列表之类的问题。 “将邪恶扼杀在萌芽状态”将创建一个单独的java类,其中包含列表并对其进行初始化,然后您可以根据需要在尽可能多的jsp页面上访问该列表。

但是如果你真的想做,你可以将列表放在会话中。

request.getSession().setAttribute("list",myListObject);

然后在另一页上你可以得到

List<MyType>myListObject=(List<MyType>) request.getSession().getAttribute("list");

您应该在不需要之后清除会话中的列表,

request.getSession().removeAttribute("list");

答案 1 :(得分:2)

最简单的答案是:它取决于。

如果您有例如one.jsp并且您调用重定向到second.jsp - 您可以使用请求范围

<c:set var="list" value="${yourListObject}" scope="request" />

如果你有one.jsp而后几页要显示你的列表,那么你应该使用会话范围:

<c:set var="list" value="${yourListObject}" scope="session" />

在second.jsp上显示您的列表:

${list}
你可以用

替换

yourListObject

  • &lt;%= Java表达式%&gt;
  • 使用具有此列表的bean并在此处传递引用