Как получить локаль посетителя в JSP с помощью Spring 3 SessionLocaleResolver

StackOverflow https://stackoverflow.com/questions/7368863

Вопрос

Мне нужно получить языковой стандарт посетителя на моих страницах JSP, чтобы я мог правильно отображать раскрывающееся меню со списком языков и иметь выбранный язык в соответствии с их текущим языковым стандартом.Обычно я могу сделать что-то вроде ${pageContext.request.locale}.

Проблема, я думаю , заключается в том, что мне предоставляется только языковой стандарт в соответствии с заголовками запроса пользователя (что отправляет браузер).Но пользователь мог изменить свой язык / локаль, поэтому мне нужно использовать механизм Spring, который тоже просматривает сеанс:

родовое слово

Но тогда не так просто получить доступ к нему на странице JSP и заставить код JSP работать с ним.

Или есть другой более простой механизм отображения раскрывающегося меню языков пользователю?Сохраняет ли Spring текущую локаль в объекте, легко доступном из JSP?

Это было полезно?

Решение

При использовании SessionLocaleResolver текущая локаль сохраняется в сеансе с использованием имени атрибута, указанного в классе SessionLocaleResolver.Ссылка на SessionLocaleResolver сохраняется в запросе с использованием другого имени атрибута (org.springframework.web.servlet.DispatcherServlet # LOCALE_RESOLVER_BEAN_NAME).

Я не вижу простого способа получить языковой стандарт прямо на странице jsp без использования кода Java.

Я бы получил текущий языковой стандарт, создал список выбираемых языков в контроллере и добавил его в модель.

Это делает код пригодным для тестирования и перемещает Java-код из jsp в контроллер.

Другие советы

Для нас

родовое слово

сделал свое дело.Это свойство соответствует тому, что было установлено преобразователем языковых стандартов Spring.

Однострочное решение ..

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top