在会话中使用jsp bean

时间:2008-11-18 17:50:40

标签: java jsp javabeans

我正在使用一个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做一个新的任务?

3 个答案:

答案 0 :(得分:3)

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

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

如果您坚持更新,请使用HttpSession.setAttribute()。像这样:

session.setAttribute("bean", bean);

我相信JSP引擎会自动为您创建并初始化变量session

答案 1 :(得分:1)

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

答案 2 :(得分:0)

会从会话更改范围到请求为您修复此问题吗?