2011-09-10 10 views
9

Potrzebuję uzyskać ustawienia regionalne odwiedzającego na moich stronach JSP, aby poprawnie wyświetlać rozwijane menu z listą języków i mieć wybrany język zgodnie z ich bieżącymi ustawieniami narodowymi . Zwykle mogę zrobić coś takiego jak ${pageContext.request.locale}.Jak uzyskać ustawienia regionalne użytkownika w JSP przy użyciu Spring SessionLocaleResolver

Problem, Myślę, że, to tylko da mi ustawienia regionalne zgodnie z nagłówkami żądań użytkownika (co wysyła przeglądarka). Ale użytkownik mógł zmienić swój język/ustawienia regionalne, więc muszę korzystać z mechanizmem sprężynowym, która wygląda na sesji TOO:

RequestContextUtils.getLocale(request).toString(); 

ale to nie jest tak łatwo dostępne, że na stronie JSP i mają pracę kodu JSP z tym.

Czy istnieje jeszcze jeden prostszy mechanizm wyświetlania rozwijanego menu języków dla użytkownika? Czy Spring zapisuje bieżące ustawienia narodowe w obiekcie łatwo dostępnym z JSP?

Odpowiedz

2

Podczas korzystania z SessionLocaleResolver bieżące ustawienia regionalne są przechowywane w sesji przy użyciu nazwy atrybutu określonej w klasie SessionLocaleResolver. Odwołanie do SessionLocaleResolver jest przechowywane w żądaniu przy użyciu innej nazwy atrybutu (org.springframework.web.servlet.DispatcherServlet # LOCALE_RESOLVER_BEAN_NAME).

Nie widzę łatwego sposobu na uzyskanie ustawień regionalnych bezpośrednio na stronie jsp bez użycia kodu Java.

Chciałbym pobrać aktualne ustawienia regionalne i utworzyć listę języków do wyboru w sterowniku i dodać to do modelu.

Umożliwia to testowanie kodu i przenoszenie kodu java z jsp do kontrolera.

1

Jedno rozwiązanie linia ..

RequestContextUtils.getLocale(request) 
21

Dla nas

${pageContext.response.locale} 

załatwiło sprawę. Ta właściwość jest zgodna z tym, co zostało skonfigurowane przez mechanizm rozstrzygania narodowego Spring.

Powiązane problemy