1º- No consigo recibir correctamente varios parametros desde la funcion AJAX del JSP en el Servlet (que se encarga de generar una estructura XML con los datos).
2º- No consigo saber, como, una vez que el Servlet devuelve la estructura XML, puedo recuperar estos datos para insertarlos en el combo.
Aqui os dejo el codigo que tengo hasta ahora relativo a la parte conflictiva.
Funcion AJAX del JSP:
Cita:
DOM del JSP:<script language="javascript">
function rellenarCursoEscolar(opcion){
var obj = new XMLHttpRequest();
var tipoCentro = document.forms.formulario.tipoCentro.value;
var claveCentro = document.forms.formulario.claveCentro.value;
obj.open("GET", 'CfgEvalAJAXServlet.do', true);
obj.send('tipoCentro=' + tipoCentro + '&claveCentro=' + claveCentro + '&opcion=' + opcion);
obj.red cargarDatos();
}
function cargarDatos(obj){
if (obj.readyState == 4) {
}
}
</script>
function rellenarCursoEscolar(opcion){
var obj = new XMLHttpRequest();
var tipoCentro = document.forms.formulario.tipoCentro.value;
var claveCentro = document.forms.formulario.claveCentro.value;
obj.open("GET", 'CfgEvalAJAXServlet.do', true);
obj.send('tipoCentro=' + tipoCentro + '&claveCentro=' + claveCentro + '&opcion=' + opcion);
obj.red cargarDatos();
}
function cargarDatos(obj){
if (obj.readyState == 4) {
}
}
</script>
Cita:
Funciones del Servlet encargado de procesar la informacion y devolver la estructura XML (hace uso de una clase DAO para el acceso a la BD).<body>
<div align="center" style="margin-top:7px;">
<form id="formulario" name="formulario" method="post" action="CfgEvalServlet.do" target="contenido">
<label class="etiquetaOpcionesForm">Tipo Centro
<select name="tipoCentro" id="tipoCentro" size="1">
<OPTION VALUE="AD">AD</OPTION>
<OPTION VALUE="ADS">ADS</OPTION>
<OPTION VALUE="CML">CML</OPTION>
<OPTION VALUE="CMU">CMU</OPTION>
<OPTION VALUE="EMU">EMU</OPTION>
<OPTION VALUE="EOI">EOI</OPTION>
<OPTION VALUE="ESD">ESD</OPTION>
<OPTION VALUE="EXT">EXT</OPTION>
<OPTION VALUE="FIL">FIL</OPTION>
<OPTION VALUE="SEC">SEC</OPTION>
</select></label>
<label class="etiquetaOpcionesForm">Clave Centro
<input type="text" name="claveCentro" id="claveCentro" onChange="javascript:rellenarCursoEscolar(1);"/></label>
<label class="etiquetaOpcionesForm">Curso Escolar
<select name="cursoEscolar" id="cursoEscolar" size="1"></select></label>
<label class="etiquetaOpcionesForm">
<input name="opcion" type="radio" value="1" checked="true"/>Todo</label>
<input type="submit" name="Submit" value="Enviar" />
<br>
</form>
</div>
</body>
<div align="center" style="margin-top:7px;">
<form id="formulario" name="formulario" method="post" action="CfgEvalServlet.do" target="contenido">
<label class="etiquetaOpcionesForm">Tipo Centro
<select name="tipoCentro" id="tipoCentro" size="1">
<OPTION VALUE="AD">AD</OPTION>
<OPTION VALUE="ADS">ADS</OPTION>
<OPTION VALUE="CML">CML</OPTION>
<OPTION VALUE="CMU">CMU</OPTION>
<OPTION VALUE="EMU">EMU</OPTION>
<OPTION VALUE="EOI">EOI</OPTION>
<OPTION VALUE="ESD">ESD</OPTION>
<OPTION VALUE="EXT">EXT</OPTION>
<OPTION VALUE="FIL">FIL</OPTION>
<OPTION VALUE="SEC">SEC</OPTION>
</select></label>
<label class="etiquetaOpcionesForm">Clave Centro
<input type="text" name="claveCentro" id="claveCentro" onChange="javascript:rellenarCursoEscolar(1);"/></label>
<label class="etiquetaOpcionesForm">Curso Escolar
<select name="cursoEscolar" id="cursoEscolar" size="1"></select></label>
<label class="etiquetaOpcionesForm">
<input name="opcion" type="radio" value="1" checked="true"/>Todo</label>
<input type="submit" name="Submit" value="Enviar" />
<br>
</form>
</div>
</body>
Cita:
Un saludo, y muchas gracias a todos. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//Carga de datos.
String tipoCentro = request.getParameter("tipoCentro");
String claveCentro = request.getParameter("claveCentro");
String cursoEscolar = request.getParameter("cursoEscolar");
String estudios = request.getParameter("estudios");
String ensenanza = request.getParameter("ensenanza");
String nivel1 = request.getParameter("nivel1");
String nivel2 = request.getParameter("nivel2");
String nivel3 = request.getParameter("nivel3");
String nivel4 = request.getParameter("nivel4");
//Abre conexion.
Conexion conexion = new Conexion();
conexion.conectar();
//Instancia CfgEvalDAO.
CfgEvalDAO ceDAO = new CfgEvalDAO();
//Segun la opcion...
switch (Integer.parseInt((String) request.getParameter("opcion"))) {
case 1: //Crea XML para el combo "cursoEscolar";
String[] ce = ceDAO.devuelveDatosCursoEscolar(conexion.miConex() , tipoCentro, claveCentro);
imprimeXML(out, ce);
break;
}
//Cargar Curso_Escolar.
}
private void imprimeXML(PrintWriter out, String[] datos) {
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
out.print("<xml>");
for (int pos = 0; pos < datos.length; pos++) {
out.print("<curso>");
out.print(datos[pos]);
out.print("</curso>");
}
out.print("</xml>");
}
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//Carga de datos.
String tipoCentro = request.getParameter("tipoCentro");
String claveCentro = request.getParameter("claveCentro");
String cursoEscolar = request.getParameter("cursoEscolar");
String estudios = request.getParameter("estudios");
String ensenanza = request.getParameter("ensenanza");
String nivel1 = request.getParameter("nivel1");
String nivel2 = request.getParameter("nivel2");
String nivel3 = request.getParameter("nivel3");
String nivel4 = request.getParameter("nivel4");
//Abre conexion.
Conexion conexion = new Conexion();
conexion.conectar();
//Instancia CfgEvalDAO.
CfgEvalDAO ceDAO = new CfgEvalDAO();
//Segun la opcion...
switch (Integer.parseInt((String) request.getParameter("opcion"))) {
case 1: //Crea XML para el combo "cursoEscolar";
String[] ce = ceDAO.devuelveDatosCursoEscolar(conexion.miConex() , tipoCentro, claveCentro);
imprimeXML(out, ce);
break;
}
//Cargar Curso_Escolar.
}
private void imprimeXML(PrintWriter out, String[] datos) {
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
out.print("<xml>");
for (int pos = 0; pos < datos.length; pos++) {
out.print("<curso>");
out.print(datos[pos]);
out.print("</curso>");
}
out.print("</xml>");
}