【问题标题】:Using a jsp bean in a session在会话中使用 jsp bean
【发布时间】:2010-09-22 21:48:53
【问题描述】:

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

【问题讨论】:

    标签: java jsp javabeans


    【解决方案1】:

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

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

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

    session.setAttribute("bean", bean);
    

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

    【讨论】:

    • 这是我的想法(事后)。有没有办法覆盖引用?
    【解决方案2】:

    您不应该自己新建 bean。让 JSP 为您做到这一点

    【讨论】:

      【解决方案3】:

      将范围从会话更改为请求是否会为您解决此问题?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-13
        • 2016-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多