【发布时间】:2016-04-23 20:51:39
【问题描述】:
所以在帮助回答这个问题Thymeleaf + Spring (not Boot) - how to show messages from messageSource
我发现如果您使用ReloadableResourceBundleMessageSource,它将无法正常工作。 Thymeleaf 会显示 ??app.name_pt_BR??而不是预期的结果。
@Bean(name = "messageSource")
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/i18n/messages");
messageSource.setFallbackToSystemLocale(false);
messageSource.setCacheSeconds(0);
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
当我切换到下面时,它按预期工作。
@Bean(name = "messageSource")
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("/i18n/messages");
messageSource.setFallbackToSystemLocale(false);
messageSource.setCacheSeconds(0);
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
为什么 ReloadableResourceBundleMessageSource 无法使用?
为这个问题添加代码:GitHub
【问题讨论】:
-
无法重现基于 XML 的配置的问题。 Github 上提供了示例应用程序。基于 Java 的配置似乎有些问题。有other examples使用Java配置成功使用
ReloadableResourceBundleMessageSource。 -
有趣...我知道您在哪里使用 Thymeleaf,但您链接的示例不是。但两者都没有使用 Spring Boot。如果这就是问题所在,我会同意。
-
可能值得在 Spring Github 存储库中提出问题。