Добрый день! Нникак не могу заставить работать локализацию при использовании LocaleChangeInterceptor (т. е. смена языка на основе ссылки в приложении). Судя по официальному руководству, а также весьма полезной статье достаточно подобного кода в конфигурационном файле Spring: | Код | <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="classpath:messages" /> <property name="defaultEncoding" value="UTF-8"/> </bean> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> </bean> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> <property name="defaultLocale" value="en"/> </bean> <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <ref bean="localeChangeInterceptor" /> </property> </bean>
|
В тестовом проекте использую Java-конгурирование для Spring. Листинги основных конфигурационных файлов приведены ниже. Что наблюдаю:При нажатии на кнопку смены языка (как на английский, так и на русский) ничего не происходит. Что требуется:Переключения языка приложения с помощью кнопки в приложении. Просьба помочь в решении проблемы. Заранее признателен за вашу помощь! AppConfig.java: | Код | @Configuration public class AppConfig {
@Value("#{database['jdbc.url']}") private String url; @Value("#{database['jdbc.dialect']}") private String dialect; @Value("#{database['jdbc.username']}") private String username; @Value("#{database['jdbc.password']}") private String password;
@Bean DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(url, username, password); return dataSource; }
@Bean SessionFactory sessionFactory() { LocalSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean(); sessionFactory.setDataSource(dataSource());
Properties hibernateProperties = new Properties(); hibernateProperties.put("hibernate.dialect", dialect); hibernateProperties.put("hibernate.show_sql", "true"); hibernateProperties.put("hibernate.connnection.charSet", "UTF-8");
sessionFactory.setHibernateProperties(hibernateProperties);
return sessionFactory.getObject(); }
@Bean MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:messages"); messageSource.setDefaultEncoding("UTF-8");
return messageSource; }
@Bean ViewResolver viewResolver() { TilesViewResolver viewResolver = new TilesViewResolver();
return viewResolver; }
@Bean LocaleChangeInterceptor localChangeInterceptor() { LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
return localeChangeInterceptor; }
@Bean DefaultAnnotationHandlerMapping defaultAnnotationHandlerMapping( LocaleChangeInterceptor localeChangeInterceptor) { DefaultAnnotationHandlerMapping defaultAnnotationHandlerMapping = new DefaultAnnotationHandlerMapping(); defaultAnnotationHandlerMapping .setInterceptors(new Object[] { localeChangeInterceptor });
return defaultAnnotationHandlerMapping; }
@Bean LocaleResolver localeResolver() { CookieLocaleResolver localeResolver = new CookieLocaleResolver(); localeResolver.setDefaultLocale(Locale.ENGLISH);
return localeResolver; }
@Bean TilesConfigurer tilesConfigurer() { TilesConfigurer tilesConfigurer = new TilesConfigurer(); tilesConfigurer.setDefinitions(new String[] { "/WEB-INF/tiles.xml" });
return tilesConfigurer; }
@Bean CommonsMultipartResolver multipartResolver() { CommonsMultipartResolver resolver = new CommonsMultipartResolver(); resolver.setMaxUploadSize(100000);
return resolver; } }
|
index.jsp: | Код | <%@ page language="java" contentType="text/html; charset=utf8" pageEncoding="utf8"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <body> <h1>Заголовок страницы</h1> <span style="float: right"> <a href="?locale=en">en</a> | <a href="?locale=ru">ru</a> </span> </body> </html>
|
spring.xml: | Код | <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <context:component-scan base-package="org.terentich.site" /> <mvc:annotation-driven /> <util:properties id="database" location="/WEB-INF/database.properties" /> </beans>
|
web.xml: | Код | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>charsetFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>charsetFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
|
|