ResourceBundleMessageSource中的嵌套属性

时间:2016-01-05 18:33:33

标签: 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的资源包中获取String,如下所述 -

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自动解决这个问题。

1 个答案:

答案 0 :(得分:0)

我在我的控制器中使用 MessageSource 这样做

@Inject
private MessageSource message;

protected String getMessage(String key, Object[] arguments) {
    return message.getMessage(key, arguments, LocaleContextHolder.getLocale());
}