Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.urservices.urerp.ecole.config.web; import com.urservices.urerp.ecole.view.resolver.PDFViewResolver; import java.util.ArrayList; import java.util.List; import java.util.Locale; import javax.servlet.ServletContext; import org.springframework.beans.factory.annotation.Autowired; 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.http.MediaType; import org.springframework.web.accept.ContentNegotiationManager; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; 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.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.SessionLocaleResolver; import org.springframework.web.servlet.view.ContentNegotiatingViewResolver; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.tiles3.TilesConfigurer; /** * * @author samuel < smlfolong@gmail.com > */ @Configuration @EnableWebMvc @ComponentScan(basePackages = { "com.urservices.urerp.ecole" }) public class WebConfig extends WebMvcConfigurerAdapter { @Autowired private ServletContext servletContext; @Bean public ViewResolver pdfViewResolver() { return new PDFViewResolver(); } @Bean public InternalResourceViewResolver getInternalResourceViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/view/"); resolver.setSuffix(".jsp"); return resolver; } @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { configurer.ignoreAcceptHeader(true).defaultContentType(MediaType.TEXT_HTML); } /** * * @param manager * @return */ @Bean public ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager) { ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver(); resolver.setContentNegotiationManager(manager); List<ViewResolver> resolvers = new ArrayList<ViewResolver>(); resolvers.add(getInternalResourceViewResolver()); resolvers.add(pdfViewResolver()); resolver.setViewResolvers(resolvers); return resolver; } // @Bean // public UrlBasedViewResolver viewResolver() { // UrlBasedViewResolver viewResolver = new UrlBasedViewResolver(); // viewResolver.setViewClass(TilesView.class); // return viewResolver; // } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("resources/bootstrap/"); } @Bean public TilesConfigurer tilesConfigurer() { TilesConfigurer tilesConfigurer = new TilesConfigurer(); tilesConfigurer.setDefinitions(new String[] { "/WEB-INF/tiles/tiles-definitions.xml" }); tilesConfigurer.setCheckRefresh(true); return tilesConfigurer; } // Dbut configuration de l'internationalisation // Dfinition du paramtre de langue @Bean public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("language"); return localeChangeInterceptor; } // Dfinition de la langue par dfaut @Bean(name = "localeResolver") public LocaleResolver sessionLocaleResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(new Locale("en")); return localeResolver; } // Ajout d'un intercepteur de langue @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); } // Dfinition du lieu de stockage des fichiers de mssage @Bean public ReloadableResourceBundleMessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasenames( new String[] { "classpath:messages", "WEB-INF/messages/messages", "WEB-INF/messages/rh/messages", "WEB-INF/messages/stock/messages", "WEB-INF/messages/payment/messages" }); return messageSource; } }