spring 3.1.2 MVC を使用しています。注釈によって Web アプリケーションを構成しようとしています
ここでは、 LocaleChangeInterceptor、ReloadableResourceBundleMessageSource、SessionLocaleResolverクラスを使用しているため、国際化を実装したいと考えています。ここに私の設定クラスがあります:
@Configuration
@EnableWebMvc
public class MyAppConfig extends WebMvcConfigurerAdapter{
@Bean
public ReloadableResourceBundleMessageSource resourceBundleMessageSource(){
ReloadableResourceBundleMessageSource messageSource=new ReloadableResourceBundleMessageSource();
String[] resources= {"classpath:labels","classpath:message"};
messageSource.setBasenames(resources);
return messageSource;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor(){
LocaleChangeInterceptor localeChangeInterceptor=new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("locale");
return localeChangeInterceptor;
}
@Bean
public SessionLocaleResolver sessionLocaleResolver(){
SessionLocaleResolver localeResolver=new SessionLocaleResolver();
localeResolver.setDefaultLocale(new Locale("da","DK"));
return localeResolver;
}
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
しかし、これは機能していません。デフォルトのテキストが表示されます
<spring:message code="login.user.password" text="Password" />
「パスワード」として。
私を助けてください。ここで、次の構成を行うと、applicationContext.xml
正常に動作します。
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:message</value>
<value>classpath:labels</value>
</list>
</property>
<property name="defaultEncoding" value="ISO-8859-1" />
</bean>
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" p:paramName="locale"/>
</mvc:interceptors>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="da_DK" />
</bean>
この問題を解決するために私を助けてください。