使用新的春季版本,用百里香叶,不是我的专长,用gradle,我尝试了很多方法更改基本名称的位置文件和配置,但仍然收到??welcome.message_**??在模板结果上。
@EnableAutoConfiguration
@Configuration
@ComponentScan
public class Application {
[...]
@Bean
public ReloadableResourceBundleMessageSource resourceBundleMessageSource(){
ReloadableResourceBundleMessageSource messageSource=new ReloadableResourceBundleMessageSource();
String[] resources= {"/WEB-INF/locale/messages", "WEB-INF/locale/messages", "locale/messages", "i18n", "locale"};
messageSource.setBasenames(resources);
messageSource.setFallbackToSystemLocale(true);
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor(){
LocaleChangeInterceptor localeChangeInterceptor=new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
return localeChangeInterceptor;
}
@Bean
public SessionLocaleResolver sessionLocaleResolver(){
SessionLocaleResolver localeResolver=new SessionLocaleResolver();
localeResolver.setDefaultLocale(new Locale("pt","BR"));
return localeResolver;
}
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
模板:
<h1 th:text="#{welcome.message}">Welcome!</h1>
在src/java/webapp/WEB-INF/local/messages.properties
和src/java/webapp/WEB-INF/local/messages_pt_BR.properties
有2家住宿
GitHub项目:https://github.com/brunoguerra/springtutorial/tree/master/web-scure-jpa
感谢您的任何想法
四处走动后,我在github上找到了春季项目的样本。解决方案非常简单,只需在 MVC 配置器上定义public MessageSource messageSource()
,public ReloadableResourceBundleMessageSource resourceBundleMessageSource()
在应用程序配置器上定义即可。
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {
[...]
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages/messages");
return messageSource;
}
bean name 应该是 messageSource我们也可以做到
@Bean(name ="messageSource")
public MessageSource anyName() {}
或
public MessageSource messageSource() {}