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达到相同的目的。
任何线索都会受到赞赏。