2017-04-19 57 views
2

我有以下內容屬性文件:

INVALID_ARGUMENT=Field ${fieldName} is invalid or missing. 

我讀這使用Spring配置:

@PropertySource("error_messages_en.properties") 
@Configuration 
public static class ErrorMessagesEn { 
    @Value("${INVALID_ARGUMENT}") 
    private String invalidArgument; 
} 

但申請後開始我看到:

Could not resolve placeholder 'fieldName' in value "Ïîëå ${fieldName} íåêîððåêòíî çàïîëíåíî èëè ïðîïóùåíî." 

我需要${fieldName},因爲我想用repacer:https://stackoverflow.com/a/3655963/2674303

如何避免此錯誤?

+0

,你改變佔位符,我不清楚。我想你很想解釋這部分。 –

+0

@Mario Santini我在java代碼中執行它。圖書館我用這個鏈接的問題 – gstackoverflow

+0

鏈接是關於另一個答案,並沒有解釋你如何在你的代碼中使用它。 –

回答

3

您應該轉義${fieldName},因爲它沒有被定義爲Spring屬性。

你可以看看這個問題:Escape property reference in spring property file和相關的答案。

而應該這樣寫:

INVALID_ARGUMENT=Field #{'$'}{fieldName} is invalid or missing. 
+0

引起來的:java.lang.IllegalArgumentException:可能沒有在值「$ {INVALID_ARGUMENT}」中解析佔位符'INVALID_ARGUMENT'「 – gstackoverflow

+0

我已經測試過,並且不會產生此問題。你確定它是鏈接的嗎?如果你設置了'INVALID_ARGUMENT = foo',你是否也遇到了這個問題? –

+0

看起來像編碼問題,但我不確定 – gstackoverflow