【发布时间】:2011-12-07 14:10:16
【问题描述】:
由于 Wicket 通过序列化页面中的组件来自动管理会话状态,我不知道应该在哪个级别附加状态数据。更具体地说,我遇到的错误似乎是由会话之间共享的 WebApplication 对象引起的。
- 应用程序实例是否在会话之间共享?
- 我是否应该始终将会话数据附加到
Page实例? - 如果我在多个页面上重用带有附加会话状态的组件会怎样?这些实例是否共享,即如果我在一个页面上设置组件的状态,它是否会转移到另一个页面?
我猜,第三个要点取决于对象身份。 Wicket 使用什么来确定equals()(例如,它是否使用Map)?
我附加到应用程序对象的数据是我在许多页面中需要的状态,所以我没有将它附加到页面对象。这是在 Wicket 中执行此操作的正确方法吗?
【问题讨论】:
-
您能否更清楚地说明会话状态的含义?一个例子?应用程序在会话之间不“共享”。它只存在一次。页面(实例)始终绑定到会话,因此您无法共享它们。
-
@tetsuo - 我将相关链接放入 biziclop 的答案中,谢谢。