java - fmt:setBundle 在多用户中无法正常工作
问题描述
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.js 中解决这个问题。可以通过从 java 代码中设置特定于语言环境的标签来成功处理相同的内容。但是如果我没记错的话,同样应该可以通过简单的 jsp 来实现。
任何线索将不胜感激。
解决方案
推荐阅读
- ssl - 密码验证失败
- r - ggplot中的不同构面标题
- javascript - 如何构建安全的图片投票系统
- python - django REST API 调用来自不同 python 环境的脚本
- android - Android jetpack 导航抽屉布局不会替换项目选择工具栏上的整个片段仍然可见
- airflow - 同一 dag 中具有不同计划的 Airflow 任务
- javascript - 尽管距离变化,如何保持速度持续时间相同
- php - Blade PHP 文件在浏览器中显示刀片代码
- unix - 如何部署现有的 Powerbuilder 应用程序以在 UNIX 机器上工作?
- php - 如何使用 mssql 从选定的数据库结果中选择其他表详细信息?