如何从Spring获取当前用户区域设置而不将其作为参数传递给函数?
问题内容:
我正在使用Spring 3.1,并且想要找到当前用户有效的语言环境,有没有一种方法可以直接获取语言环境,而不必强制将其从控制器传递给服务层…等等。
spring是否将语言环境存储在线程本地存储中,可以通过调用某些静态方法来获取它?
问题答案:
我也一直在寻找如何在不经过环境的情况下访问语言环境的方法Locale
,但是我对Spring还是很陌生,发现大多数解决方案令人困惑。但是事实证明,Spring
MVC确实将语言环境存储在线程本地存储中。可以通过以下方式访问它:
Locale locale = LocaleContextHolder.getLocale();
最后一种方法是基于线程本地的,以便在体系结构的任何实体中提供当前的语言环境。[…]您必须知道,默认情况下,LocaleContextHolder的内容对应于Web请求中指定的语言环境。
来自:使用Spring MVC
3配置语言环境切换
。(该文章还提供了用于获取语言环境的替代配置/方法,这对于希望这样做的任何人可能都是有用的)。
您也可以在此处查看LocaleContextHolder
Spring
的文档。