Session 如何使用Wicket在会话中存储用户数据?

Session 如何使用Wicket在会话中存储用户数据?,session,authentication,wicket,Session,Authentication,Wicket,我正在使用“Wicket in Action”一书学习Wicket 我所做的(安全地跳过) 我想创建这样的工作流: 用户第一次打开页面--“用户未登录”被打印出来 用户进入登录页面 用户登录(成功) 用户被重定向到主页面,有关用户的信息被打印出来 书中描述了这一切,理论上看起来还不错。有一个用于用户数据的类(UserData),还有一个用于保存用户数据的类会话(MySession)。会话在WicketMyWebApplication中创建,调用newSession方法 但结果是——它不起作用

我正在使用“Wicket in Action”一书学习Wicket

我所做的(安全地跳过) 我想创建这样的工作流:

  • 用户第一次打开页面--“用户未登录”被打印出来
  • 用户进入登录页面
  • 用户登录(成功)
  • 用户被重定向到主页面,有关用户的信息被打印出来
书中描述了这一切,理论上看起来还不错。有一个用于用户数据的类(
UserData
),还有一个用于保存用户数据的类会话(
MySession
)。会话在Wicket
MyWebApplication
中创建,调用
newSession
方法

但结果是——它不起作用

问题 用户数据在成功登录后立即被删除。问题在于创建会话:

  • 进入页面,加上
  • 进入登录页面,加上
  • 返回主页
结果创建了6个会话。当然,每个新会话都会杀死前一个会话,并随之杀死所有数据


问题:那么如何在会话中正确存储用户数据,或者更确切地说,如何使会话像真正的会话一样工作?

找到了!Wicket似乎有意丢弃会话(默认情况下),所以如果想要保留会话,她/他必须在会话上调用
bind
,明确声明会话。克雷格·塔塔林邮报上有更多关于它的信息: