Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/12/2011, 13:17
Avatar de navarone86
navarone86
 
Fecha de Ingreso: octubre-2009
Mensajes: 62
Antigüedad: 15 años, 1 mes
Puntos: 2
spring mvc y i18n: localeResolver no funciona

no consigo que mi aplicación cambie de idioma. es algo que he hecho mil veces, pero ahora parece que no quiere funcionar. os dejo mi código:

pom.xml
Código XML:
Ver original
  1. <dependencies>
  2.     <dependency>
  3.       <groupId>junit</groupId>
  4.       <artifactId>junit</artifactId>
  5.       <version>4.10</version>
  6.       <scope>test</scope>
  7.     </dependency>
  8.     <dependency>
  9.         <groupId>org.springframework</groupId>
  10.         <artifactId>spring-beans</artifactId>
  11.         <version>${org.springframework.version}</version>
  12.     </dependency>
  13.     <dependency>
  14.         <groupId>org.springframework</groupId>
  15.         <artifactId>spring-context</artifactId>
  16.         <version>${org.springframework.version}</version>
  17.     </dependency>
  18.     <dependency>
  19.         <groupId>org.springframework</groupId>
  20.         <artifactId>spring-core</artifactId>
  21.         <version>${org.springframework.version}</version>
  22.     </dependency>
  23.     <dependency>
  24.         <groupId>org.springframework</groupId>
  25.         <artifactId>spring-web</artifactId>
  26.         <version>${org.springframework.version}</version>
  27.     </dependency>
  28.     <dependency>
  29.         <groupId>org.springframework</groupId>
  30.         <artifactId>spring-webmvc</artifactId>
  31.         <version>${org.springframework.version}</version>
  32.     </dependency>
  33.     <dependency>
  34.         <groupId>org.springframework</groupId>
  35.         <artifactId>spring-orm</artifactId>
  36.         <version>${org.springframework.version}</version>
  37.     </dependency>
  38.     <dependency>
  39.         <groupId>org.springframework</groupId>
  40.         <artifactId>spring-test</artifactId>
  41.         <version>${org.springframework.version}</version>
  42.         <scope>test</scope>
  43.     </dependency>
  44.     <dependency>
  45.         <groupId>org.springframework.security</groupId>
  46.         <artifactId>spring-security-web</artifactId>
  47.         <version>${org.springframework.version}</version>
  48.     </dependency>
  49.     <dependency>
  50.         <groupId>org.springframework.security</groupId>
  51.         <artifactId>spring-security-config</artifactId>
  52.         <version>${org.springframework.version}</version>
  53.     </dependency>
  54.     <dependency>
  55.         <groupId>org.springframework.security</groupId>
  56.         <artifactId>spring-security-taglibs</artifactId>
  57.         <version>${org.springframework.version}</version>
  58.     </dependency>
  59.     <dependency>
  60.         <groupId>jstl</groupId>
  61.         <artifactId>jstl</artifactId>
  62.         <version>1.2</version>
  63.     </dependency>
  64.     <dependency>
  65.         <groupId>javax.servlet</groupId>
  66.         <artifactId>javax.servlet-api</artifactId>
  67.         <version>3.0.1</version>
  68.     </dependency>
  69.     <dependency>
  70.         <groupId>log4j</groupId>
  71.         <artifactId>log4j</artifactId>
  72.         <version>1.2.16</version>
  73.     </dependency>
  74.     <dependency>
  75.         <groupId>org.hibernate</groupId>
  76.         <artifactId>hibernate-annotations</artifactId>
  77.         <version>3.5.6-Final</version>
  78.     </dependency>
  79.     <dependency>
  80.         <groupId>org.hibernate</groupId>
  81.         <artifactId>hibernate-validator</artifactId>
  82.         <version>4.2.0.Final</version>
  83.         <exclusions>
  84.             <exclusion>
  85.                 <groupId>org.slf4j</groupId>
  86.                 <artifactId>slf4j-api</artifactId>
  87.             </exclusion>
  88.         </exclusions>
  89.     </dependency>
  90.     <dependency>
  91.         <groupId>org.slf4j</groupId>
  92.         <artifactId>slf4j-simple</artifactId>
  93.         <version>1.5.8</version>
  94.     </dependency>
  95.     <dependency>
  96.         <groupId>joda-time</groupId>
  97.         <artifactId>joda-time</artifactId>
  98.         <version>2.0</version>
  99.     </dependency>
  100.     <dependency>
  101.         <groupId>mysql</groupId>
  102.         <artifactId>mysql-connector-java</artifactId>
  103.         <version>5.1.18</version>
  104.     </dependency>
  105.     <dependency>
  106.         <groupId>org.javassist</groupId>
  107.         <artifactId>javassist</artifactId>
  108.         <version>3.15.0-GA</version>
  109.     </dependency>
  110.     <dependency>
  111.         <groupId>commons-fileupload</groupId>
  112.         <artifactId>commons-fileupload</artifactId>
  113.         <version>1.2.2</version>
  114.     </dependency>
  115.     <dependency>
  116.         <groupId>commons-io</groupId>
  117.         <artifactId>commons-io</artifactId>
  118.         <version>2.1</version>
  119.     </dependency>
  120.   </dependencies>

web.xml
Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.    xmlns="http://java.sun.com/xml/ns/javaee"
  4.    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5.    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  6.    id="WebApp_ID" version="2.5">
  7.    
  8.     <display-name>Spring3MVC</display-name>
  9.    
  10.     <welcome-file-list>
  11.         <welcome-file>index.jsp</welcome-file>
  12.     </welcome-file-list>
  13.  
  14.     <servlet>
  15.         <servlet-name>spring</servlet-name>
  16.         <servlet-class>
  17.             org.springframework.web.servlet.DispatcherServlet
  18.         </servlet-class>
  19.         <load-on-startup>1</load-on-startup>
  20.     </servlet>
  21.     <servlet-mapping>
  22.         <servlet-name>spring</servlet-name>
  23.         <url-pattern>/</url-pattern>
  24.     </servlet-mapping>
  25.    
  26.     <listener>
  27.         <listener-class>
  28.             org.springframework.web.context.ContextLoaderListener
  29.         </listener-class>
  30.     </listener>
  31.  
  32.     <context-param>
  33.         <param-name>contextConfigLocation</param-name>
  34.         <param-value>
  35.             /WEB-INF/spring-servlet.xml,
  36.             /WEB-INF/spring-security.xml
  37.         </param-value>
  38.     </context-param>
  39.  
  40.     <filter>
  41.         <filter-name>springSecurityFilterChain</filter-name>
  42.         <filter-class>
  43.             org.springframework.web.filter.DelegatingFilterProxy
  44.         </filter-class>
  45.     </filter>
  46.  
  47.     <filter-mapping>
  48.         <filter-name>springSecurityFilterChain</filter-name>
  49.         <url-pattern>/*</url-pattern>
  50.     </filter-mapping>
  51. </web-app>

spring-servlet.xml
Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.    xmlns:p="http://www.springframework.org/schema/p"
  5.    xmlns:context="http://www.springframework.org/schema/context"
  6.    xmlns:mvc="http://www.springframework.org/schema/mvc"
  7.    xmlns:tx="http://www.springframework.org/schema/tx"
  8.    xsi:schemaLocation="http://www.springframework.org/schema/beans
  9.         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  10.         http://www.springframework.org/schema/context
  11.         http://www.springframework.org/schema/context/spring-context-3.0.xsd
  12.         http://www.springframework.org/schema/mvc
  13.        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
  14.        http://www.springframework.org/schema/tx
  15.        http://www.springframework.org/schema/tx/spring-tx.xsd">
  16.  
  17.     <context:component-scan base-package="group.artifact" />
  18.  
  19.     <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  20.         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
  21.         <property name="prefix" value="/WEB-INF/jsp/" />
  22.         <property name="suffix" value=".jsp" />
  23.     </bean>
  24.    
  25.     <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
  26.         <property name="basename" value="classpath:messages" />
  27.         <property name="defaultEncoding" value="UTF-8" />
  28.     </bean>
  29.    
  30.     <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
  31.         <property name="paramName" value="lang" />
  32.     </bean>
  33.  
  34.     <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
  35.         <property name="defaultLocale" value="es"/>
  36.     </bean>
  37.  
  38.     <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
  39.         <property name="interceptors">
  40.             <ref bean="localeChangeInterceptor" />
  41.         </property>
  42.     </bean>
  43.    
  44.     <mvc:annotation-driven />
  45.    
  46.     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  47.         <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
  48.         <property name="url"><value>jdbc:mysql://localhost/database</value></property>
  49.         <property name="username"><value>root</value></property>
  50.         <property name="password"><value></value></property>
  51.     </bean>
  52.    
  53.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  54.         <property name="dataSource" ref="dataSource"/>
  55.         <property name="packagesToScan" value="group.artifact.models"/>
  56.     </bean>
  57.    
  58.     <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  59.         <property name="sessionFactory" ref="sessionFactory"/>
  60.     </bean>
  61.    
  62.     <tx:annotation-driven />
  63.    
  64.     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  65.         <property name="sessionFactory" ref="sessionFactory" />
  66.     </bean>
  67.    
  68.     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  69.         <!-- one of the properties available; the maximum file size in bytes -->
  70.         <property name="maxUploadSize" value="10000000" />
  71.     </bean>    
  72. </beans>

e intento cambiar el idioma con los siguientes enlaces:
Código HTML:
Ver original
  1. <a href="?lang=es">es</a>
  2. <a href="?lang=en">en</a>

y los properties con las traducciones están en /WEB-INF/classes, y está bien ya que el idioma por defecto lo coge bien

seguro que falta alguna tontería, pero por más que miro no consigo nada. he mirado mil ejemplos en internet, y todos tienen lo mismo, exactamente lo mismo que yo, y a mi no me funciona