Que tal, mira practicamnete los ejemplos de PHP y AJAX te sirven para usarlos en JSP solo hay que saber adaptarlos, pero te pondre aqui un ejemplo y asi cualquier lo puede checar...Este ejemplo me devuelve un checKList de personas responsables con su clave...
Código HTML:
<script>
function objetoAjax(){//Con esta funcion se crea el objeto AJAX
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function creaLista(){// con esta función cargamos los valores de lista...<
ajax=objetoAjax();// instanciamos el objeto ajax
ajax.open("POST", "genera.jsp?tipo=responsables",true);
//en mi caso genera.jsp es un jsp que genera y devuelve un XML valido
//para asi poder usar un poco de DOM
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
if(ajax.status==200){
alert('Responsables : '+ajax.responseText); // con este alert puedes ver que te envia "genera.jsp"
par=ajax.responseXML;
var aux2=par.getElementsByTagName('responsable');//obtengo la cantidad de responsables..
for(var n=0; n < aux2.length;n++){
clave=aux2[n].getElementsByTagName('clave')[0].firstChild.nodeValue;
nombre=aux2[n].getElementsByTagName('nombre')[0].firstChild.nodeValue;
document.tuForm.resp[n+1]=new Option(nombre ,clave );//aqui voy asignando el nuevo valor al checkList
}
document.getElementById('cargar').innerHTML = "";
}
}else{//alert(ajax.readyState);
document.getElementById('cargar').innerHTML = "Cargando ...";
}
}// fin de ajax.
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(null);
}
</script>
<select name="resp" style="background:#C4D0DE;font-size:8pt;width:160px;">
<option value='no' selected>Selecciona Responsable</option>
</select><br>
<input type=button value='creaCheckList' onclick="creaLista();"/>
y lo que coloque en genera.jsp es algo asi:
Código HTML:
<%String Tipo=(request.getParameter("tipo")==null)?"":request.getParameter("tipo");
String xml="";
String sp="\n";
if(Tipo.equals("responsables")){
xml="<datos>"+sp;%>
<%--Extraigo el nombre de los Usuarios --%>
<sql:statement id="stmt1" conn="conn">
<sql:query>
select nombre, cve_empleado from empleados
</sql:query>
<sql:resultSet id="respo">
<% xml=xml+"<responsable>"+sp;
xml=xml+"<clave>"+respo.getString(2)+"</clave>"+sp;
xml=xml+"<nombre>"+respo.getString(1)+"</nombre>"+sp;
xml=xml+"</responsable>"+sp;
%>
</sql:resultSet>
</sql:statement>
<% xml=xml+"</datos>"+sp;
out.print(xml);
}// Fin de Responsables...
ya tendras tu que adaptar la consulta según a como lo tienes en tu jsp, recuerda, tiene que ser un jsp que devuelva un XML valido para AJAX, yo puse en las dos primeras lineas de ese jsp :
Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
<%@ page contentType="text/xml; charset=UTF-8" %>
en el alert que te puse dentro de la funcion al ejecutarse deveria pintarte algo como:
<?xml version="1.0" encoding="UTF-8" ?>
- <responsable>
<clave>100</clave>
<nombre>Josue</nombre>
</responsable>
- <responsable>
<clave>101</clave>
<nombre>y</nombre>
</responsable>
- <responsable>
<clave>102</clave>
<nombre>x</nombre>
</responsable>
etc etc....
trata de implementar el ejemplo que te di y si te funciona te sera facil hacer lo que quieres... Suerte!!!!
ohala y te funcione!