2

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

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

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

4

2 回答 2

2

对我来说,唯一的解决方案实际上是在同一个 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),对我来说很好。

于 2017-10-05T01:26:16.343 回答
-1

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

于 2013-05-20T11:48:39.060 回答