i18n и стойки 1.3

Я хотел бы интернационализировать свое веб-приложение для нескольких языков.

Я нашел несколько примеров, таких как это.

Они работают, но в этом случае отображается всегда одна и та же страница (то есть, если пользователь меняет язык на какой-либо странице, он перенаправляется, например, на домашнюю страницу).

Я бы хотел, чтобы, если пользователь нажимает на флаг страны (код html: ссылка находится в файле jsp, включенном во все остальные jsp), страница (на которой находится пользователь) перезагружается. Как я мог сделать?


person Sefran2    schedule 20.12.2012    source источник


Ответы (1)


Ваш пример ссылки ясен: когда выбран флаг страны, ссылка переходит на ваш «LanguageAction», установите Locale следующим образом:

request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.FRANCE);

Наконец, перенаправьте страницу обратно на последнюю просмотренную страницу. Это потребует от вас получить URL-адрес запроса перед изменением локали.

Надеюсь, это поможет.

person Buhake Sindi    schedule 28.12.2012
comment
Так что я не должен использовать return mapping.findForward("success");, не так ли? Не могли бы вы привести пример перенаправления или ссылку? Заранее спасибо. - person Sefran2; 28.12.2012
comment
Посмотрите на Struts ActionRedirect (который расширяет ActionForward). Пример . - person Buhake Sindi; 28.12.2012
comment
Я сохраняю URL-адрес перед установкой локали с помощью request.getHeader("Referer"), а затем использую return new ActionRedirect(url). Это работает, но я не получаю желаемого результата, если страница jsp является результатом выполнения сервлета или если параметры передаются по почте. Должен ли я получить URL-адрес другим способом или? - person Sefran2; 05.01.2013