我正在尝试在我拥有的两个JSP页面之间传递List。这是我写的类的对象列表。
如何在JSP页面之间传递此列表? request.setAttribute似乎适用于字符串,但不适用于其他任何内容。并且,如果使用列表无法轻松完成此操作,我可以将列表转换为数组并以这种方式传递,没问题。
答案 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