Jsp 如何将两个.properties加载到同一个资源包中

Jsp 如何将两个.properties加载到同一个资源包中,jsp,servlets,jstl,resourcebundle,Jsp,Servlets,Jstl,Resourcebundle,使用jstl标记,如何配置容器以从两个.properties文件加载消息 我需要的是一种简单的方法来覆盖一个文件中的消息。我们正在构建一个可再发行的webapp,其他人可能需要覆盖原始消息来定制他们的软件 因此,为了便于升级webapp,我们需要拆分message.properties,这样它们就不需要将原始message.properties的未来更新版本与其自定义版本合并。属性扩展哈希表。所以你可以使用addAll。只需加载两个属性文件,并将第二个属性文件的内容添加到第一个属性文件。相同的键

使用jstl标记,如何配置容器以从两个.properties文件加载消息

我需要的是一种简单的方法来覆盖一个文件中的消息。我们正在构建一个可再发行的webapp,其他人可能需要覆盖原始消息来定制他们的软件


因此,为了便于升级webapp,我们需要拆分message.properties,这样它们就不需要将原始message.properties的未来更新版本与其自定义版本合并。

属性扩展哈希表。所以你可以使用addAll。只需加载两个属性文件,并将第二个属性文件的内容添加到第一个属性文件。相同的键被覆盖。

对于我来说,在同一个JSP中使用2个属性文件的唯一解决方案是第一个属性国际化,第二个属性仅在将其他消息放入这些资源包的标记中时才起作用

例如:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<c:set var="language" value="es_MX" scope="session" />
<fmt:setLocale value="${language}" />
<fmt:setBundle basename="i18n" />
<fmt:bundle basename="app">
    <h1><fmt:message key="application.environment" /></h1>
</fmt:bundle>
<fmt:message key="aplicacion.nombre" />

我有两个属性文件i18n_es_MX.properties aplicacion.nombre,另一个是app.properties application.environment,对我来说很好。

在这种情况下,它取决于你的应用程序容器。它什么时候加载属性?容器是否从代码中调用了任何初始化方法?您的代码是在容器之前调用的吗?如果这些都没有帮助,那么您必须在部署期间执行。部署标准文件并用客户特定的文件条目覆盖条目。我真的不知道它何时加载message.properties文件。它应该是jstl规范的内部构件