2016-01-05 125 views
3

如果可能由Spring自動解析嵌套屬性,我需要幫助。我使用Spring 4.2.4,Java的8和屬性文件看起來喜歡 -ResourceBundleMessageSource中的嵌套屬性

# 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自動解決這個問題。

回答

0

我在控制器做到這一點與的MessageSource這個

@Inject 
private MessageSource message; 

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

感謝您的答覆等。因此對於上述屬性文件設置,您將如何解決「XYZ的尊敬的客戶」。信息。 – novice

+0

你調用String name = getMessage(「company.name」,null);然後String message = getMessage(「welcome.message」,name) – novice

+0

我喜歡** {0} **的親愛的客戶,或者嘗試發送公司作爲參數 – user2669657