我需要在JSP页面中获取访问者的语言环境,以便可以正确显示带有语言列表的下拉菜单,并根据其当前语言环境选择语言。通常我可能会做类似${pageContext.request.locale}的事情。

我认为的问题是,这只会根据用户的请求标头(浏览器发送的内容)为我提供语言环境。但是用户可能已经更改了他们的语言/语言环境,所以我需要使用Spring的机制来查看会话: 通用标签

但是在JSP页面中访问并让JSP代码使用它并不是那么容易。

还是有另一种更简单的机制可以向用户显示语言的下拉菜单?Spring是否将当前语言环境存储在可以从JSP轻松访问的对象中?

有帮助吗?

解决方案

在使用SessionLocaleResolver时,当前的语言环境使用SessionLocaleResolver类中指定的属性名称存储在会话中。对SessionLocaleResolver的引用使用另一个属性名称(org.springframework.web.servlet.DispatcherServlet#LOCALE_RESOLVER_BEAN_NAME)存储在请求中。

我看不到不使用Java代码直接在jsp页面中直接获取语言环境的简便方法。

我将获取当前语言环境,并在控制器中创建可选语言的列表,并将其添加到模型中。

这使代码可测试,并将Java代码从jsp移入控制器。

其他提示

对我们来说 通用标签

成功了。此属性遵循Spring的语言环境解析器设置的内容。

单行解决方案.. 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top