java - ResourceBundleMessageSource 中的嵌套属性

标签 java spring-mvc internationalization

如果可以通过 Spring 自动解析嵌套属性,我需要帮助。我正在使用 Spring 4.2.4、Java 8 并且属性文件看起来像-

# messages.properties
company.name=XYZ
welcome.message=Dear Customers of ${company.name}
about.company=${company.name} is blah blah

我们有一个自定义的本地化实现来从 i18 的资源包中获取字符串,如下定义 -
public String get(Locale locale, String key, Object... arguments) {
String pattern = this.getString(locale, key);
MessageFormat formatter = new MessageFormat(pattern, locale);
StringBuffer buffer = new StringBuffer();
formatter.format(arguments, buffer, null);
return buffer.toString();
}

我希望能够像 get(locale, "welcome.message") 一样使用这种方法,并希望将其呈现为 XYZ 的尊敬的客户。

目前它在 MessageFormat 中无法正常工作。有没有办法让 spring 自动解决这个问题。

最佳答案

您现在可以使用花括号(没有符号 $)。
它适用于 Spring 5(针对 5.3.6 和 5.3.7 进行了测试):

# messages.properties
company.name=XYZ
welcome.message=Dear Customers of {company.name}
about.company={company.name} is blah blah

关于java - ResourceBundleMessageSource 中的嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34618862/

相关文章:

java - 从 Spring bean 中以字符串形式检索属性/值

spring - REST 服务需要 web.xml 吗?

java - 从 URL 读取资源并直接返回这些字节作为 REST 请求的响应,没有 Java 7 和 spring MVC 3.2 的内存存储

java - Spring:ResourceBundleMessageSource是否可以配置为加载xml格式的属性

java - 文件上传小部件 gwt

java - 监听 JTabbedPane 中图标/标题的变化

java - Tomcat 服务器未从 Mac 中的 Eclipse Oxygen 启动

drupal - 在 Drupal 中翻译外部 API 结果

java - 参数化 h :commandButton

java - XPath 根据祖先元素查找元素