【发布时间】:2015-05-20 09:02:54
【问题描述】:
我的应用程序支持的不仅仅是语言。问题是当用户注销时(这意味着我打电话给getSession().invalidate())然后当前语言丢失并且使用默认语言创建了新会话。
语言是通过链接设置的:
add(new Link<Void>("goSk") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
getSession().setLocale(new Locale("sk", "SK"));
}
});
add(new Link<Void>("goEn") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
getSession().setLocale(Locale.US);
}
});
所以问题是当我使会话无效时我应该如何保持当前语言
【问题讨论】:
-
您是否考虑过将您的用户偏好保存在数据库中?
-
是的,但这是我要避免的选项,因为当用户注销时,没有用户,我认为 wicket 支持某种方式,如何通过无效会话保留一些东西
-
原则上您需要启动一个新会话(使用“公共用户”主体),将语言环境作为参数传递给新会话开始的公共页面。