我有一个用户直接加载的.jsp页面.使用如下URL的URL请求它:
http://www.example.com/myfile.jsp?country=CA&language=fr
在JSP中,我拉取URL GET参数并尝试使用它们设置语言环境,如下所示:
<% String myLanguage = request.getParameter("language"); String myCountry = request.getParameter("country"); Locale myLocale = new Locale(myLanguage, myCountry); pageContext.setAttribute("myLocale", myLocale, PageContext.PAGE_SCOPE); %> <fmt:setLocale value="${myLocale}" scope="page" />
然后,JSP中有几个位置使用< bean:message bundle =“ts”key =“…”/>显示从本地化资源包中提取的消息.来自Struts.
在第一次请求此页面时(在更改URL中的语言之后),它将以美国英语(默认语言环境)返回,然后后续刷新将返回正确本地化的内容.
最佳答案 我不做Struts,但是
Google告诉我你需要将Locale设置为
Globals.LOCALE_KEY
作为键的会话属性.
session.setAttribute(Globals.LOCALE_KEY, myLocale);
实际上你不需要JSTL fmt:setLocale.
也就是说,我会在单个Filter中而不是在每个JSP中执行此操作.