Struts2, как переключить язык при входе в систему? - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть действие viewLoginAction, которое будет перенаправлять на login.jsp.В своем действии я хочу установить локаль для сессии.Я выберу локаль в зависимости от имени хоста.

http://patate -> LOCALE.FRENCH http://potato -> LOCALE.ENGLISH

Я пытаюсь это сделать в своем действии

</p> <pre> if(french){ ActionContext.getContext().setLocale(LOCALE.FRENCH); } else { ActionContext.getContext().setLocale(LOCALE.ENGLISH); } </pre> <p>

но в моем JSP.Локаль всегда является локалью сервера (французский)

Я получаю: «Prenom» вместо «Имя», когда в действии для локали установлено значение «Английский».

Что я пропустил?

РЕДАКТИРОВАТЬ

Я нашел свою проблему.



// on set la locale maintenant if(clinique.getLangue().equals(Langue.ENGLISH)){ ActionContext.getContext().setLocale(Locale.ENGLISH); } else { ActionContext.getContext().setLocale(Locale.FRENCH); }


отлично работает .. Вам просто нужно иметь файл global_en.properties и global_fr.properties.

Мне показалось, что он работал как Struts 1 и использую стандартное global.properties, но похоже, что оно не работает так.

1 Ответ

0 голосов
/ 11 апреля 2011

Я предполагаю, что в вашем случае ActionContext.getCurrent().setLocale(). К сожалению, создается впечатление, что при запуске действия создается новый новый ActionContext, а для языкового стандарта устанавливается значение по умолчанию.

Вот аналогичная тема для того же, и я также считаю, что вам нужно добиться этого с помощью пользовательского перехватчика

SO Link

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

...