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

时间:2013-05-20 11:43:34

标签: jsp servlets jstl resourcebundle

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

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

因此,要轻松升级webapp,我们需要拆分message.properties,以便他们不需要将原始message.properties的未来更新版本与其自定义版本合并。

2 个答案:

答案 0 :(得分:1)

对我来说,在同一个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),对我来说很好。

答案 1 :(得分:-1)

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