代码之家  ›  专栏  ›  技术社区  ›  Milhous

在会话中使用JSPbean

  •  1
  • Milhous  · 技术社区  · 17 年前

    我使用的是JSPbean,当我对一个新对象进行赋值时,它会在提交到前一个对象时被重写。

    <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 回复  |  直到 17 年前
        1
  •  3
  •   sblundy    17 年前

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

    摆脱 基=新基() 你应该没事的。

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

    session.setAttribute("bean", bean);
    

    我相信这个变量 session 由JSP引擎自动创建和初始化。

        2
  •  1
  •   sblundy    17 年前

    你不应该自己给豆子换新的。让JSP帮你做

        3
  •  0
  •   Tim Howland    17 年前

    将范围从会话更改为请求是否可以为您修复此问题?