JSP страница:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:setBundle basename="com.commonapp.I18n.JspResourceBundle" var="lang" />
<fmt:message key="Home" bundle="${lang}" />
Java классы:
Есть два файла
JspResourceBundle_fr_FR.class
и
JspResourceBundle.class extending ListResourceBundle
Сценарий : после перезапуска приложения, если сначала войти в систему через пользователя с французским языковым стандартом, то другой пользователь с английским языковым стандартом регистрируется через другой браузер. Оба пользователя видят страницу по-французски.
Если в обратном порядке, английский пользователь входит в систему, а затем французский пользователь, оба пользователя видят страницу на английском языке.
Первый вошедший в систему пользователь устанавливает пакет, а для второго пользователя он забирается из кэша. Я думаю, это потому, что jsp код скомпилирован в _jsp_service.class
с этим пакетом и остается в памяти.
Есть ли способ исправить это в jsp / jstl. Может успешно обработать то же самое, установив метки для конкретной локали из кода Java. Но то же самое должно быть достигнуто с помощью простого jsp, если я не ошибаюсь.
Любое руководство будет оценено.