我使用spring 3.1.2 MVC。 我想通過配置註釋春季國際化3.1.2使用註釋不起作用
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>
請幫我解決這個問題。
嗨Biju,我已經改變了bean名稱爲「messageSource」,並且默認文本問題已解決,但我的攔截器不工作。也就是當我點擊鏈接來更改語言環境請求不會被** LocaleChangeInterceptor **攔截,那麼是否還有任何特殊的Bean名稱用於** LocaleChangeInterceptor **呢?請幫忙.. – swapy 2012-07-25 04:13:31
不,我認爲你所做的對於LocaleChangeInterceptor來說是正確的 - 你可以添加一個@Override到addInterceptors方法,以確保你在重寫方法時沒有犯任何錯誤。 – 2012-07-25 19:08:12
太棒了,它的工作!有人可以指出文檔寫在哪裏嗎? – 2016-04-28 23:18:59