tengo un problema con un ajax y un jsp. El caso es que tengo que pedir la hora cada segundo, y lo hago a través de ajax.
La primera vez que muestro hora lo hago con jsp, y después lo hago con ajax. El caso es que cuando me retorna la hora, me retorna todo un HTML, por lo que se mete una página dentro de otra. Os pongo el código a ver si se os ocurre algo:
Este es el que pide la hora (Aunque parezca que esta al reves, es el view.jsp el que le pide la hora al index.jsp, el que se muestra es el view.jsp):
view.jsp
Código Javascript:
Ver original
<script type="text/javascript"> function createRequestObject() { var req; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { // For IE 5+ req = new ActiveXObject("Microsoft.XMLHTTP"); } else { } return req; } function timeMsg() { // var t=setTimeout("alertMsg()",3000); } function alertMsg() { alert("Hello"); } // Make the XMLHttpRequest Object var http = createRequestObject(); function sendRequest(method, url) { if (method == 'get' || method == 'GET') { http.open(method, url); http.onreadystatechange = handleResponse; http.send(null); } } function handleResponse() { if (http.readyState == 4 && http.status == 200) { var response = http.responseText; if (response) { //<div id="ajax_res//">(.*?)</div>; document.getElementById("ajax_res").innerHTML = response; } } } window.setInterval("sendRequest('GET','index.jsp')", 1000); </script> <% String total; TimeZone zona = TimeZone.getTimeZone("Europe/Madrid"); Locale local = new Locale("SPANISH", "SPAIN"); Calendar calendario = Calendar.getInstance(zona, local); int numDia, numAny, hora, minutos, segons; String dia, mes; String diesSet[] = {"","Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"}; String mesAny[] = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre" ,"Octubre","Noviembre","Diciembre"}; numDia=calendario.get(Calendar.DAY_OF_MONTH); numAny=calendario.get(Calendar.YEAR); hora =calendario.get(Calendar.HOUR_OF_DAY); minutos = calendario.get(Calendar.MINUTE); segons = calendario.get(Calendar.SECOND); String hora2=Integer.toString(hora); if(hora<10) hora2="0"+hora2; String min2=Integer.toString(minutos); if(minutos<10) min2="0"+min2; dia=diesSet[calendario.get(Calendar.DAY_OF_WEEK)]; mes=mesAny[calendario.get(Calendar.MONTH)]; //Dijous, 26 de Gener de 2012 hora:min total=(dia+", "+numDia+ " de " + mes + " de " + numAny + " " + hora2 + ":" + min2 + ":" + segons); %> <div id="ajax_res"><%=total%></div> <a onload="sendRequest('GET','index.jsp')" href="#"></a>
y este el que retorna la hora:
index.jsp
Código Javascript:
Ver original
<div id="ajax_res"><%=total%></div> //Total es lo mismo que en el index
Si alguien me hecha una mano lo agradecería, no soy capaz de sacarlo!!
Saludos