我想在两个JSP页面之间传递List。这是我写的一个类的对象列表。在JSP页面之间传递列表/数组
如何在JSP页面之间传递此列表? request.setAttribute似乎适用于字符串,但不是其他任何东西。而且,如果使用列表无法轻松完成,我可以将列表转换为数组并将其传递,没有问题。
我想在两个JSP页面之间传递List。这是我写的一个类的对象列表。在JSP页面之间传递列表/数组
如何在JSP页面之间传递此列表? request.setAttribute似乎适用于字符串,但不是其他任何东西。而且,如果使用列表无法轻松完成,我可以将列表转换为数组并将其传递,没有问题。
首先,非常糟糕的设计会导致像在不同的JSP页面之间传递列表这样的问题。 “扼杀萌芽”将创建一个单独的java类,其中包含列表并初始化它,然后您可以根据需要在尽可能多的jsp页面上访问列表。
但是,如果您确实想要这样做,您可以将该列表放入会话中。
request.getSession().setAttribute("list",myListObject);
那么其他的页面上,你可以得到
List<MyType>myListObject=(List<MyType>) request.getSession().getAttribute("list");
你应该从会话清除列表,你不要求后,
request.getSession().removeAttribute("list");
这给了我第二页上的构建错误。 ()“)给出这个错误:类型不匹配:无法从对象转换为列表
我编辑了我的答案 – 2011-09-30 18:25:05
最简单的回答是:这取决于。
如果您有例如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您可以通过
取代不错........... – 2011-09-30 18:36:47
转换为JSON字符串,然后使用'request.setAttribute'。 –
*“request.setAttribute似乎适用于字符串,但不是其他任何东西”*这是不正确的。这个假设只是基于误解。 – BalusC