在不同的 PC 上找不到 ResourceBundle
ResourceBundle not found at different PC
我有一个带有 JSP 的 Servlet 项目,我对其进行了 i18n
。
我的 resources.properties
文件在 src/main/resources/
中,并且都在我的电脑上运行 (Windows 10)。
我提交更新到 git,我的朋友获取了它,但它不工作。似乎找不到资源包。他有捆绑变量名称而不是值。
在 JSP 我做的是:
在顶部 <fmt:setBundle basename="resources"/>
(资源是包名称),
每个值都替换为 <fmt:message key="leftbar.librarian"/>
当我想从 JSP 更改语言时,我做了:
<c:choose>
<c:when test="${cookie.get('language').value == 'ru'}">
<fmt:setLocale value='ru' scope="session"/>
</c:when>
<c:otherwise>
<fmt:setLocale value='en' scope="session"/>
</c:otherwise>
</c:choose>
<fmt:setBundle basename="resources"/>
我通过 JS 通过点击按钮设置 cookie。这一切都在我的电脑上工作。在另外三台 PC 上,捆绑包未加载(但没有错误)。
那么,我应该如何在 Java 中定义捆绑包,以便其他人可以得到它?
P.S。我没有用Java代码来配置它。全部在 JSP。但如果我错了,准备重构。
已解决。 Tomcat 未从 /resources 路径中找到资源。所以我不得不将捆绑包移动到根目录。现在项目在所有 PC 上启动
我有一个带有 JSP 的 Servlet 项目,我对其进行了 i18n
。
我的 resources.properties
文件在 src/main/resources/
中,并且都在我的电脑上运行 (Windows 10)。
我提交更新到 git,我的朋友获取了它,但它不工作。似乎找不到资源包。他有捆绑变量名称而不是值。
在 JSP 我做的是:
在顶部 <fmt:setBundle basename="resources"/>
(资源是包名称),
每个值都替换为 <fmt:message key="leftbar.librarian"/>
当我想从 JSP 更改语言时,我做了:
<c:choose>
<c:when test="${cookie.get('language').value == 'ru'}">
<fmt:setLocale value='ru' scope="session"/>
</c:when>
<c:otherwise>
<fmt:setLocale value='en' scope="session"/>
</c:otherwise>
</c:choose>
<fmt:setBundle basename="resources"/>
我通过 JS 通过点击按钮设置 cookie。这一切都在我的电脑上工作。在另外三台 PC 上,捆绑包未加载(但没有错误)。
那么,我应该如何在 Java 中定义捆绑包,以便其他人可以得到它?
P.S。我没有用Java代码来配置它。全部在 JSP。但如果我错了,准备重构。
已解决。 Tomcat 未从 /resources 路径中找到资源。所以我不得不将捆绑包移动到根目录。现在项目在所有 PC 上启动