Я пытаюсь проверить локализацию форматов даты в веб-приложении. Я запускаю веб-сервер Tomcat 7, с аргументом JSTL <fmt:setLocale value="${pageContext.request.locale.language}_${pageContext.request.locale.country}" />
на странице, чтобы установить формат даты. Я запускаю локальный сервер из Intellij, с аргументами JVM -Duser.language=en -Duser.region=GB
, но каждый раз, когда я запускаю приложение, локаль выходит как en_US
. Что я могу сделать, чтобы проверить изменение формата локали?Установить локаль для JSTL в аргументах JVM Tomcat для тестирования?
EDIT: Я также попытался редактирование моего клиента локаль в хроме с помощью chrome://settings/languages
и FireFox с помощью Quick Locale Switcher надстройки.
Прочтите javadoc HttpServletRequest.getLocale() и поймите, что локаль JVM не имеет ничего общего с локалью запроса: http://docs.oracle.com/javaee/6/api/javax/ servlet/ServletRequest.html # getLocale% 28% 29 –
@JBNizet 'Возвращает предпочтительный язык, на который клиент будет принимать контент, на основе заголовка Accept-Language. Если запрос клиента не предоставляет заголовок Accept-Language, этот метод возвращает локаль по умолчанию для сервера. «Если вы видите изменение, я изменил локаль клиента в соответствии с предложением BalusC и все еще вижу то же поведение, что заставляет меня думать, что он возвращает локаль сервера по умолчанию. Как я могу обойти это? – sparks
Сделайте некоторые отладки. Добавить '$ {pageContext.request.locale}' в JSP. Проверьте, что напечатано. Если печатается правильная локаль, после этого опубликуйте полный минимальный JSP, воспроизводящий проблему, сообщите нам, что вы ожидаете от нее, и что отображает ее. –