【发布时间】:2012-07-24 05:45:47
【问题描述】:
我正在使用 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>
请帮我解决这个问题。
【问题讨论】:
标签: spring jakarta-ee spring-mvc configuration-files