我正在使用一个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做一个新的任务?
答案 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)
会从会话更改范围到请求为您修复此问题吗?