如何从会话中访问 JavaBeans 数组

Posted

技术标签:

【中文标题】如何从会话中访问 JavaBeans 数组【英文标题】:How to access an array of JavaBeans from a session 【发布时间】:2015-04-28 04:32:31 【问题描述】:

我目前正在尝试在捐赠面板页面中显示用户捐赠列表(用于项目),但是否可以将 JavaBeans 数组传递给会话 bean。我想到的是

private UserDonationBean []u = new UserDonationBean();

我会根据对应的数据库信息初始化bean属性,然后通过setAttribute()把你放到会话对象中。这种方法可行吗?我将如何访问我的 JSP 中的每个 bean?

【问题讨论】:

【参考方案1】:

是的,听起来不错。就像你说的那样。 从 JSP 访问取决于您在内部使用的技术。 普通方法是通过 JSP 中始终可用的“会话”变量,除非您明确禁用它:

   <%  UserDonationBean[] u = (UserDonationBean[]) session.getAttribute("YOUR_KEY") 
   %>

如果你使用EL,那么它

$sessionScope["YOUR_KEY"] 

只是需要考虑的一些小问题: (1) 显然如果你只需要页面,你也可以把它放在请求范围内

(2) 在某些生产环境中,您可能希望 UserDonationBean 是可序列化的(UserDonationBean 实现了可序列化),因为容器可能希望将其跨集群发送,或将其保存到磁盘。

【讨论】:

Eclipse 说它无法解析为类型。我错过了什么吗? 在你的jsp顶部,你有页面导入吗?例如 哦。我以为我会把它和usebean一起使用。谢谢【参考方案2】:
private UserDonationBean []u = new UserDonationBean();
HttpSession session = request.getSession(false);
session.setAttribute("beanArray", UserDonationBean);
u = (UserDonationBean[])session.getAttribute("beanArray");

【讨论】:

以上是关于如何从会话中访问 JavaBeans 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在会话存储中使用相同的键更新数组

如何在 Java 中访问 HTTP 会话

如何在 Java 中访问 HTTP 会话

JSP JavaBeans

如何从 PHP 会话数组中删除变量

从 HttpAdapter 获取会话到基于 Java 的适配器