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

时间:2010-06-09 20:14:33

标签: jsp localization struts

我有一个用户直接加载的.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中有几个位置显示使用Struts中的<bean:message bundle="ts" key="..." />从本地化资源包中提取的消息。

在第一次请求此页面时(在更改URL中的语言之后),它将以美国英语(默认语言环境)返回,然后后续刷新将返回正确本地化的内容。

1 个答案:

答案 0 :(得分:2)

我不做Struts,但Google了解到您需要将Locale设置为以Globals.LOCALE_KEY为关键字的会话属性。

session.setAttribute(Globals.LOCALE_KEY, myLocale);

您实际上不需要JSTL fmt:setLocale

那就是说,我会在一个Filter中而不是在每个JSP中执行此操作。