Java 在属性文件中添加二级数据
我拥有的是如下的属性文件 欢迎光临 由于我反复使用了Admin单词,我想使用如下内容Java 在属性文件中添加二级数据,java,jsf,jsf-2,properties,Java,Jsf,Jsf 2,Properties,我拥有的是如下的属性文件 欢迎光临 由于我反复使用了Admin单词,我想使用如下内容 admin = Admin welcomeAdmin = Welcome #{admin} editAdmin = Edit #{admin} 因此,如果我在一个地方更改,即在admin=admin,它将反映所有地方 任何关于如何完成此任务的想法/建议都将不胜感激。今天,经典的ResourceBundle类不支持命名参数及其替换,而是支持在bundle的键值对中键入{0}的简单占位符,这将被使用Message
admin = Admin
welcomeAdmin = Welcome #{admin}
editAdmin = Edit #{admin}
因此,如果我在一个地方更改,即在admin=admin
,它将反映所有地方
任何关于如何完成此任务的想法/建议都将不胜感激。今天,经典的
ResourceBundle
类不支持命名参数及其替换,而是支持在bundle的键值对中键入{0}
的简单占位符,这将被使用MessageFormat#format
替代
在这种情况下,如果您将Welcome{admin}
替换为Welcome{0}
,您将能够通过使用以下方法之一实现所需的功能:
:
:
MessageFormat
类方法等。当然,您还可以扩展ResourceBundle
类以支持命名参数,并返回已解析命名参数的消息
建议阅读:
如果我没有弄错的话,这在Spring中是开箱即用的。我正在使用JSF,我正在使用它。然后属性占位符应该会起作用:@JanGoyvaerts:我在我的JSF 2.0项目中使用属性文件,但我需要知道如何使用下面几行中的早期数据。
admin = Admin
welcomeAdmin = Welcome #{admin}
editAdmin = Edit #{admin}
<h:outputFormat value="#{msg.welcomeAdmin}">
<f:param value="#{msg.admin}" />
</h:outputFormat>
<fmt:message key="msg.welcomeAdmin">
<fmt:param value="#{msg.admin}">
</fmt:message>