每个检票口的新豆

时间:2015-02-10 19:58:39

标签: java spring session wicket spring-bean

我正在使用Apache wicket创建我的第一个应用程序并且遇到了问题。用户通过身份验证方法登录后,我有一个为该用户创建的新会话。现在,如果我想为该用户存储数据,我将如何使用bean来实现它?

目前我创建了一个接口和一个类,其中包含我想要存储的变量的get和set方法,并创建了一个bean,例如<bean id="springApplicationContext" class="com..util.SpringApplicationContext"/>,但是当数据被覆盖但是当我将范围更改为“session”每个人在bean中都有相同的数据。

由于

1 个答案:

答案 0 :(得分:2)

正确的方法是使用Session范围的Spring bean。如果数据对所有用户可见,则配置中必定存在一些错误。 使用Spring与Wicket无关!

替代方法是将您的数据存储在Wicket的Session类中。 覆盖MyApplication#newSession()方法并返回MySession类。 MySession的实例将由Wicket存储为HTTP会话中的属性。您可以将任何成员字段放在MySession中,例如;

public class MySession extends WebSession {
  ...
  private MyBean myBean; 
  // setter and getter
  ... 
}

然后在您的Wicket代码中使用它:MySession.get().getMyBean().setSome(thing);