定義在applicationContext.xml中的資源包屬性文件,如:
<!-- Message Source for appstrings -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="WEB-INF/strings/appstrings" />
</bean>
在你Java類/控制器自動將它連接爲:
private 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!
Read more..