如何在JSP上设置用户的语言环境

我有一个用户直接加载的.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中执行此操作.

点赞