在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类/控制器中自动装配它为:
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运行它时,您会得到NOTHING,即空字符串。如果您仔细查看,您会发现在您的messageSource属性中有一个DelegatingMessageSource,并且其父源为空,这意味着它是EMPTY,即始终返回空白。
这里是解决这个小挑战的方法:将您的messageSource定义从spring-servlet.xml移动到applicationContext.xml!
阅读更多..