简体   繁体   中英

Using a jsp bean in a session

I am using a JSP bean and when I do an assignment to a new object, it gets over-written on a submit to the previous object.

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

and on a resubmit of the page I get

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

Is there a way to tell JSP to do a new assignment?

I'm not completely sure, but I think base = new Base() does not update the reference stored in the session scope. Therefore, the bean you created with the initial <jsp:useBean/> is still around while the one you create manually, and then updated, isn't.

Get rid of base = new Base() and you should be fine.

If you insist upon updating it, you use HttpSession.setAttribute() . Like so:

session.setAttribute("bean", bean);

I believe the variable session is automatically created and initialized for you by the JSP engine.

You're not supposed to new the bean yourself. Let JSP do that for you

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM