在 grails 应用程序中,我成功地获得了用户选择的语言(添加到 url,“...?lang=xx_XX”),如下所示:
def locale = RequestContextUtils.getLocale(request)
使用 springsecurity,并设置了一个可以正常工作的特殊注销处理程序
grails.plugins.springsecurity.logout.handlerNames = ['securityContextLogoutHandler', 'myLogoutHandler']
我需要在 myLogoutHandler 中获取用户选择的语言环境,但以下不起作用(它只显示浏览器默认语言环境,而不是用户选择的语言环境)
class MyLogoutHandler implements LogoutHandler {
void logout(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) {
def locale2 = RequestContextUtils.getLocale(httpServletRequest);
}
}
我还尝试使用以下方式获取会话区域设置:
RequestContextHolder.currentRequestAttributes().getProperties()
但这给出了相同的结果,有人知道如何从 MyLogoutHandler 获取语言环境吗?