<mvc:interceptors> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <property name="paramName" value="locale" /> </bean> </mvc:interceptors>
3 Réponses :
Extension de la classe de configuration par webmvcconfigureAdapter code> peut aider.
Pour ajouter une commande d'entrée d'intercepteur
@Bean
public LocaleChangeInterceptor localeChangeInterceptor(){
LocaleChangeInterceptor localeChangeInterceptor=new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("language");
return localeChangeInterceptor;
}
En plus de ce que Swap dit, vous devez ajouter:
Cannot change HTTP accept header - use a different locale resolution strategy
Oui tu as raison. Le nom de haricot est la solution @bean (nom = "localeresolver")
L'exemple complet de la localisation du ressort MVC 4.1.4.Release est affiché. Aussi, vous pouvez utiliser exemple (mais malheureusement sa configuration est Basé sur XML) pour résoudre les problèmes de structure de projet.
package com.pizza.config; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.i18n.CookieLocaleResolver; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @Configuration @EnableWebMvc @ComponentScan(value = "com.pizza") public class WebConfig extends WebMvcConfigurerAdapter { /* Resolvers and other MVC needs */ @Bean public InternalResourceViewResolver getInternalResourceViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setViewClass(JstlView.class); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); } /* Localization section is started */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); } @Bean public LocaleChangeInterceptor localeChangeInterceptor(){ LocaleChangeInterceptor localeChangeInterceptor=new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("language"); return localeChangeInterceptor; } @Bean(name = "localeResolver") public LocaleResolver getLocaleResolver(){ return new CookieLocaleResolver(); } @Bean public MessageSource messageSource() { final ReloadableResourceBundleMessageSource ret = new ReloadableResourceBundleMessageSource(); ret.setBasename("classpath:languages"); ret.setDefaultEncoding("UTF-8"); return ret; } }