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

发布于 2024-12-07 21:06:07 字数 159 浏览 0 评论 0原文

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

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

I'm trying to pass a List between two JSP pages that I have. This is a list of objects that is of a class that I wrote.

How do I pass this list between JSP pages? request.setAttribute seems to work for strings, but not anything else. And, if this cannot be easily done with a list, I can convert the list to an array and pass it that way, no problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独患者 2024-12-14 21:06:07

首先,非常糟糕的设计会导致诸如在不同 JSP 页面之间传递列表之类的问题。 “防患于未然”将创建一个单独的 java 类,其中包含该列表并对其进行初始化,然后您可以在任意数量的 jsp 页面上访问该列表。

但如果您确实想要这样做,您可以将列表放入会话中。

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

然后在另一个页面上您可以得到

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

并且您应该在不需要后从会话中清除该列表,

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

The first thing is that a very bad design will lead to such questions as passing lists between different JSP pages. The "nip the evil at the bud" will be to create a separate java class which contains the list and initializes it, then you can access the list at as many jsp pages as you want.

But incase you really want to do, you can put the list in the session.

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

Then on the other page you can get

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

And you should clear the list from the session after you do not require it,

request.getSession().removeAttribute("list");
番薯 2024-12-14 21:06:07

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

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

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

如果您有 one.jsp 和几页之后您想要显示您的list,那么您应该使用 session scope:

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

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

${list}

yourListObject 您可以替换为

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

The simplest answer is: it depends.

If you have e.g. one.jsp and you call redirect to second.jsp - you can use request scope

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

If you have one.jsp and few pages later you want to display your list, then you should use session scope:

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

to display your list on second.jsp:

${list}

yourListObject you can replace by

  • <%= Java expression %>
  • use bean which has this list and just pass the reference here
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文