在 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 消息源;
@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!
阅读更多..