Tengo el siguiente codigo Jsp.
Código HTML:
Este codigo es para generar dos selects que hacen consulta a la base de datos el segundo dependiendo del primero hace una llamada a prueba.jsp Ver original
<script type="text/javascript"> var peticion = false; var testPasado = false; try { peticion = new XMLHttpRequest(); } catch (trymicrosoft) { try { peticion = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { peticion = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { peticion = false; } } } if (!peticion) alert("ERROR AL INICIALIZAR!"); function cargarCombo (url, comboAnterior, element_id) { //Obtenemos el contenido del div //donde se cargaran los resultados var element = document.getElementById(element_id); //Obtenemos el valor seleccionado del combo anterior var valordepende = document.getElementById(comboAnterior) var x = valordepende.value //construimos la url definitiva //pasando como parametro el valor seleccionado var fragment_url = url+'?Id_Facultad='+ x ; //abrimos la url peticion.open("GET", fragment_url); peticion.onreadystatechange = function() { if (peticion.readyState == 4) { //escribimos la respuesta element.innerHTML = peticion.responseText; } } peticion.send(null); } </script> <select name="facultad" onchange="javascript:cargarCombo('prueba.jsp', 'facultad', 'div_prueba')" id="facultad"> <% if (!admin.isClosed()) { ingreso = admin.createStatement(); valida = ingreso.executeQuery("select Id_Facultad, Nombre from simulador_ecaes.facultad" ); System.out.println(valida); while (valida.next()) { String idfac=valida.getString("Id_Facultad"); String nomfac=valida.getString("Nombre"); out.println("<option value='"+idfac+"'>"+idfac+","+nomfac+"</option>"); } admin.close(); } else out.println("fallo"); %> </select>
Código HTML:
El problema es que cuando escogo el valor del primer select me sale el siguiente error:Ver original
<body> <% String idfac = request.getParameter("Id_Facultad").toString(); %> <select name="programa" id="programa" class="select"> <% Connection admin=null; Statement ingreso=null; ResultSet valida=null; String conexion="jdbc:mysql://localhost/simulador_ecaes"; try { String q =("select * from simulador_ecaes.programa where Id_Facultad = '" + idfac+ "'"); valida = ingreso.executeQuery(q); while (valida.next()) { String idpro=valida.getString("Id_Programa"); String nompro=valida.getString("Nombre"); out.println("<option value='"+idpro+"'>"+idpro+","+nompro+"</option>"); } } catch (Exception e) { e.printStackTrace(); } valida.close(); ingreso.close(); %> </select>
Cita:
Creo que el problema esta en esta linea que pienso no me esta enviando el valor estraido de la base de datos.Programa:
HTTP Status 500 -
________________________________________
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
root cause
java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish/v3 logs.
________________________________________
GlassFish/v3
HTTP Status 500 -
________________________________________
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
root cause
java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish/v3 logs.
________________________________________
GlassFish/v3
Código HTML:
Pero todo el codigo esta bien formulado creo....Ver original
var fragment_url = url+'?Id_Facultad='+ x ;
Me pudieran decir por que motivo se me presenta el error y como podria solucionarlo... De antemano muchas gracias