次のように、applicationContext.xml ファイルで ResourceBundle プロパティを定義します。
<!-- Message Source for appstrings -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="WEB-INF/strings/appstrings" />
</bean>
あなたのJavaクラス/コントローラーでは、次のように自動配線されます。
プライベート ReloadableResourceBundleMessageSource messageSource;
@Autowired
public void setMessageSource(MessageSource messageSource) {
this.messageSource = (ReloadableResourceBundleMessageSource) ((DelegatingMessageSource) messageSource).getParentMessageSource();
}
次に、そのクラス/コントローラーの任意の関数で clearCache() を呼び出します。
messageSource.clearCache();
コントローラーでこの例外が発生しました
ReloadableResourceBundleMessageSource incompatible with org.springframework.context.support.DelegatingMessageSource
コントローラーで messageSource を介して実行しようとすると、空の文字列が返されます。よく見ると、messageSource プロパティに DelegatingMessageSource があり、親ソースが空であることがわかります。これは、EMPTY であることを意味します。つまり、常に空白を返します。
この小さな課題の解決策は次のとおりです。messageSource 定義を spring-servlet.xml から applicationContext.xml に移動します。
続きを読む..