Hola....
Tengo el siguiente codigo Jsp.
<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">
<option></option>
<%
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>
<div name="div_prueba"></div>
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
<body>
<%
String idfac = request.getParameter("Id_Facultad").toString();
%>
<select name="programa" id="programa" class="select">
<option></option>
<%
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>
El problema es que cuando escogo el valor del primer select me sale el siguiente error:
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
Creo que el problema esta en esta linea que pienso no me esta enviando el valor estraido de la base de datos.
var fragment_url = url+'?Id_Facultad='+ x ;
Pero todo el codigo esta bien formulado creo....
Me pudieran decir por que motivo se me presenta el error y como podria solucionarlo... De antemano muchas gracias