Любой браузер, который не посылает заголовок в Accept-Language
запрос будет иметь этот вопрос. Лучшее решение - установить свойство fallbackLocale, которое является Locale, которое будет использоваться, если не указано значение Accept-Language
.
Это свойство может быть установлен в любой области видимости (страницы запрос, приложение, сессия). Свойством, которое необходимо установить, является «javax.servlet.jsp.jstl.fmt.fallbackLocale. scope ', где scope - соответствующее значение для того, где вы его устанавливаете.
Таким образом, чтобы установить его для всего приложения, сделать что-то вроде:
servletContext.setAttribute ("javax.servlet.jsp.jstl.fmt.fallbackLocale.application", java.util.Locale. НАС);
Лучшее место, чтобы положить это в ServletContextListener.
Если вам нужно только сделать это для определенных страниц, то вы могли бы сделать следующее в JSP:
<% pageContext.setAttribute ("javax.servlet.jsp.jstl.fmt.fallbackLocale .page ", java.util.Locale.НАС); %>
Код, который я разместил (два варианта одного и того же), должен отображать «03», что он делает, если я открою страницу в FF, Opera, Chrome или Safari. Если я открою его в IE, он отобразит «2003». Поэтому IE, похоже, игнорирует тег fmt. Другие теги JSTL, такие как c: и sql: отлично работают в IE. –