我正在使用Apache wicket创建我的第一个应用程序并且遇到了问题。用户通过身份验证方法登录后,我有一个为该用户创建的新会话。现在,如果我想为该用户存储数据,我将如何使用bean来实现它?
目前我创建了一个接口和一个类,其中包含我想要存储的变量的get和set方法,并创建了一个bean,例如<bean id="springApplicationContext" class="com..util.SpringApplicationContext"/>
,但是当数据被覆盖但是当我将范围更改为“session”每个人在bean中都有相同的数据。
由于
答案 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);