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

gre*_*man 3 authentication session wicket

我正在使用"Wicket in Action"一书学习Wicket.

我做了什么(安全跳过)

我想创建这样的工作流程:

  • 用户第一次打开页面 - 打印出"用户未登录"
  • 用户进入登录页面
  • 用户登录(成功)
  • 用户被重定向到主页 - 打印出有关用户的信息

这一切都在书中描述,理论上看起来还不错.有一个用于用户数据(UserData)的类,并且有一个用于MySession保存用户数据的类session().会话在Wicket中创建MyWebApplication,newSession方法调用.

但结果是 - 它不起作用.

问题

成功登录后即删除用户数据.问题是创建会话:

  • 进入页面,再加上
  • 进入登录页面,再加上
  • 回到主页面

导致6个创建的会话.当然,每个新会话都会杀死前一个会话,并且会杀死所有数据.

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

gre*_*man 6

找到了!似乎Wicket故意丢弃会话(默认情况下),所以如果想要保留它,她/他必须通过调用bindsession 明确说明它.更多关于它的信息在Craig Tataryn帖子中:

http://basementcoders.com/2008/10/sessions-in-wicket/