如何从会话中访问一组 JavaBeans

How to access an array of JavaBeans from a session

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

private UserDonationBean []u = new UserDonationBean();

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

是的,听起来不错。就像你说的。 来自 JSP 的访问取决于您在内部使用的技术。 香草方式是通过 JSP 中始终可用的 'session' 变量,除非您明确禁用它:

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

如果你使用 EL 那么它

${sessionScope["YOUR_KEY"] }

需要考虑的一些小问题: (1) 显然如果只是页面需要,也可以放在request scope

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

private UserDonationBean []u = new UserDonationBean();
HttpSession session = request.getSession(false);
session.setAttribute("beanArray", UserDonationBean);
u = (UserDonationBean[])session.getAttribute("beanArray");