1

我正在使用 JSP bean,当我对新对象进行分配时,它会在提交给前一个对象时被覆盖。

<jsp:useBean id="base" class="com.example.StandardBase" scope="session" />
...
//base object id  = 396
base = new Base()
//base object id = 1000

在重新提交我得到的页面时

<jsp:useBean id="base" class="com.example.StandardBase" scope="session" />
//base object id = 396

有没有办法告诉 JSP 做一个新的任务?

4

3 回答 3

3

我不完全确定,但我认为base = new Base()不会更新存储在会话范围内的引用。因此,您使用初始创建的 bean<jsp:useBean/>仍然存在,而您手动创建然后更新的 bean 不存在。

摆脱,base = new Base()你应该没事。

如果你坚持更新它,你使用HttpSession.setAttribute(). 像这样:

session.setAttribute("bean", bean);

我相信该变量session是由 JSP 引擎自动为您创建和初始化的。

于 2008-11-18T17:56:00.070 回答
1

你不应该自己更新 bean。让 JSP 为你做这件事

于 2008-11-18T17:55:18.153 回答
0

将范围从会话更改为请求会为您解决这个问题吗?

于 2008-11-18T17:54:16.690 回答