У меня есть страница .jsp, которую пользователь загружает напрямую. Запрос с URL-адресом, как показано ниже:
<a href="http://www.example.com/myfile.jsp?country=CA&language=fr" rel="nofollow noreferrer">http://www.example.com/myfile.jsp?country=CA&language=fr</a>
В 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) она возвращается на английском языке США (локаль по умолчанию), а затем последующие обновления возвращают правильно локализованный контент.