Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/05/2011, 02:25
Pelirr
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: llegar a servlet desde jsp

Hola, sobre todo muchas gracias por responderme, cuando no consigues dar con la solución te parece estar dando palos de ciego, y ver que hay quien intenta ayudarte es un apoyo muy grande. Al final me faltaba, en la llamada ajax, cambiar :

var urlIdioma = '/idioma.servlet';

por

var urlIdioma = '/AODB2/idioma.servlet';

donde AODB2 es el nombre de mi aplicación. Y el servlet tampoco me reconocia la parte:

((HttpServletResponse) request).setHeader("Accept-Language", clientLanguage);

porque me decía que no podía hacerle un cast, pero sin el cast me daba error el request. Como me valía con meter ese valor en sesión, al final el servlet me ha quedado de la siguiente manera:

Código:
package es.indra.aodb.maintenance.resources.web.servlet;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IdiomaServlet extends HttpServlet {
	
	private static final long serialVersionUID = -7897645237016575215L;

	protected void doGet (HttpServletRequest request, HttpServletResponse response)
	{					
		String clientLanguage = request.getHeader("Accept-Language");
		//request.setHeader("Accept-Language", clientLanguage);
		String firstLanguage = clientLanguage.split(",")[0];
		if (firstLanguage.contains("-"))
		{
			firstLanguage = firstLanguage.split("-")[0];
		}
		request.getSession().setAttribute("idioma",firstLanguage);	
	}
}
Y me funciona, luego en la jsp, lo que hago es preguntar por ese valor de sesión para incluir un fichero js u otro, de la siguiente manera:

Código:
<% if (session.getAttribute("idioma").equals("en")) {%>
		<script type="text/javascript" src="<s:url value="/js/grid.locale-en.js"/>" ></script>
		<% 
		}	
		else {
		%>
		<script type="text/javascript" src="<s:url value="/js/grid.locale-es.js"/>" ></script>
		<%}%>
Espero que ésto le ayude a alguien, la verdad es que el tema de coger el lenguaje del navegador con IE no había manera de que funcionara, y así se puede sacar. Muchas gracias a todos, un saludo