想搞个级联下拉菜单,出了这个错误,请帮帮忙!代码如下 :<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*" %>
<jsp:useBean id="joyrisingbean" scope="page" class="db.lxtconndb"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>搜索纪念馆</title>
<style type="text/css">
<!--
.sssy {
font-size: 12px;
font-style: normal;
}
-->
</style>
</head><body bgcolor="#F0F8FF" >
<form id="form1" name="form1" method="post" action="b.jsp" >
<span class="sssy">站内纪念馆搜索:
<select name="ssxx" onchange="onselectxx()" id="ssxx" size="1">
<option value="按纪念馆名" >按纪念馆名</option>
<option value="按纪念馆号"selected>按纪念馆号 </option>
<option value="按建馆人名">按建馆人名</option>
<option value="按用户编号">按用户编号</option>
<option value="按省份">按省份</option>
<option value="按纪念园区名">按纪念园区名</option>
<option value="按纪念园区号">按纪念园区号</option>
</select>
<select name="flxx" size="1" onload="initIDselect()" id="flxx">
</select>
<input type="submit" name="sumbit" id="sumbit" value="GO>>>" accesskey="s" />
<br />
</form><% String sql = "SELECT * from jnr";
ResultSet rs = joyrisingbean.executeQuery(sql);//注:编译joyrisingbean正常
%>
<script language="javascript">
function initIDselect(){var flxx=document.getElementById('flxx');
<%while(rs.next()){%>
flxx.options.add(new Option(<%=rs.getInt("jng_id")%>,0));
<%}
rs.close();
rs=null;
%>
}//end of function initIDselect()///////////////////////////////////////////
///////////改变选项时装入不同的选项值///////////
function onselectxx()
{
var flxx=document.getElementById('flxx');
flxx.options.length=0; //清除原有选项;
var ssxx=document.getElementById('ssxx');
var ssxxselectedtext=ssxx.options[ssxx.selectedIndex].text;
<%
rs.beforeFirst();while(rs.next()){%>
switch (ssxxselectedtext){
case '按纪念馆号':
flxx.options.add(new Option(<%=rs.getInt("jng_id")%>,0));
break;
case'按建馆人名':
flxx.options.add(new Option(<%=rs.getString("user_name")%>,0));
break;
case '按纪念馆名':
flxx.options.add(new Option(<%=rs.getString("reg_gm")%>,0));
break;case'按纪念园区名':
flxx.options.add(new Option(<%=rs.getString("reg_yqm")%>,0));
break;
case'按纪念园区号':
flxx.options.add(new Option(<%=rs.getInt("yq_id")%>,0));
case'按省份':
flxx.options.add(new Option(<%=rs.getString("jnr_city")%>,0));
break;
default:
}//end switch
<%}%>
//end while(rs.next())
<%rs.close();
rs=null;
%>
}//end funtion onselectxx()
</script>
</body>
</html>
错误提示:java.lang.NullPointerException
java.lang.NullPointerException
at _jsp._tmpzydr33yf2o__jsp._jspService(TMPzydr33yf2o.jsp:72)
at _jsp._tmpzydr33yf2o__jsp._jspService(_tmpzydr33yf2o__jsp.java:28)
其中(_tmpzydr33yf2o__jsp.java:28)的代码是_jspService(request, response, pageContext, _jsp_application, session, _jsp_state);可能是对应joyrisingbean中的数据库连接代码。但是在编译joyrisingbean时没有错了,为什么这里会错?又该如何解决呢?请指教!!!非常感谢!
<jsp:useBean id="joyrisingbean" scope="page" class="db.lxtconndb"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>搜索纪念馆</title>
<style type="text/css">
<!--
.sssy {
font-size: 12px;
font-style: normal;
}
-->
</style>
</head><body bgcolor="#F0F8FF" >
<form id="form1" name="form1" method="post" action="b.jsp" >
<span class="sssy">站内纪念馆搜索:
<select name="ssxx" onchange="onselectxx()" id="ssxx" size="1">
<option value="按纪念馆名" >按纪念馆名</option>
<option value="按纪念馆号"selected>按纪念馆号 </option>
<option value="按建馆人名">按建馆人名</option>
<option value="按用户编号">按用户编号</option>
<option value="按省份">按省份</option>
<option value="按纪念园区名">按纪念园区名</option>
<option value="按纪念园区号">按纪念园区号</option>
</select>
<select name="flxx" size="1" onload="initIDselect()" id="flxx">
</select>
<input type="submit" name="sumbit" id="sumbit" value="GO>>>" accesskey="s" />
<br />
</form><% String sql = "SELECT * from jnr";
ResultSet rs = joyrisingbean.executeQuery(sql);//注:编译joyrisingbean正常
%>
<script language="javascript">
function initIDselect(){var flxx=document.getElementById('flxx');
<%while(rs.next()){%>
flxx.options.add(new Option(<%=rs.getInt("jng_id")%>,0));
<%}
rs.close();
rs=null;
%>
}//end of function initIDselect()///////////////////////////////////////////
///////////改变选项时装入不同的选项值///////////
function onselectxx()
{
var flxx=document.getElementById('flxx');
flxx.options.length=0; //清除原有选项;
var ssxx=document.getElementById('ssxx');
var ssxxselectedtext=ssxx.options[ssxx.selectedIndex].text;
<%
rs.beforeFirst();while(rs.next()){%>
switch (ssxxselectedtext){
case '按纪念馆号':
flxx.options.add(new Option(<%=rs.getInt("jng_id")%>,0));
break;
case'按建馆人名':
flxx.options.add(new Option(<%=rs.getString("user_name")%>,0));
break;
case '按纪念馆名':
flxx.options.add(new Option(<%=rs.getString("reg_gm")%>,0));
break;case'按纪念园区名':
flxx.options.add(new Option(<%=rs.getString("reg_yqm")%>,0));
break;
case'按纪念园区号':
flxx.options.add(new Option(<%=rs.getInt("yq_id")%>,0));
case'按省份':
flxx.options.add(new Option(<%=rs.getString("jnr_city")%>,0));
break;
default:
}//end switch
<%}%>
//end while(rs.next())
<%rs.close();
rs=null;
%>
}//end funtion onselectxx()
</script>
</body>
</html>
错误提示:java.lang.NullPointerException
java.lang.NullPointerException
at _jsp._tmpzydr33yf2o__jsp._jspService(TMPzydr33yf2o.jsp:72)
at _jsp._tmpzydr33yf2o__jsp._jspService(_tmpzydr33yf2o__jsp.java:28)
其中(_tmpzydr33yf2o__jsp.java:28)的代码是_jspService(request, response, pageContext, _jsp_application, session, _jsp_state);可能是对应joyrisingbean中的数据库连接代码。但是在编译joyrisingbean时没有错了,为什么这里会错?又该如何解决呢?请指教!!!非常感谢!
flxx.options.add(new Option( <%=rs.getInt("jng_id")%>,0));
<%}
rs.close();
rs=null; 你上面取得了结果集,在这里又把他清空,肯定会出现空指针啊
rs=null;
支持楼上的!
我把下面的函数中rs.close();
rs=null;删掉(如6、7楼所说),结果还是一样(原来是没有这两行的,后来找不到错在哪,就在每个函数中都连接数据库,然后关闭,发现结果都是一样,又删掉了,就是忘了删这两行)。
请大家再帮我找找。(编译连接数据库的javabean没有错误)
function initIDselect(){ var flxx=document.getElementById('flxx');
<%while(rs.next()){%>
flxx.options.add(new Option( <%=rs.getInt("jng_id")%>,0));
<%}
rs.close();
rs=null;
%>
102行是while(rs.next()),这一行我也没找到语法错在哪?还请指教!
去掉,就没报错误了,只是得不到结果(因为前面数据库指针已指到最后一行的后面了),请
高手指教!
function onselectxx()
{
var flxx=document.getElementById('flxx');
flxx.options.length=0; //清除原有选项;
var ssxx=document.getElementById('ssxx');
var ssxxselectedtext=ssxx.options[ssxx.selectedIndex].text;
<% rs.beforeFirst(); while(rs.next()){
<%}
rs.close();
rs=null;
%> 和onselectxx() 函数中
<%}%>
//end while(rs.next())
<%rs.close();
rs=null;
%> 2处都是rs=null,试着将这2处注释掉,再运行看看。
关于语法错误,我按照13、14楼的说法,把rs.close();
rs=null; 都注释掉了,可还是报一样的错误啊!下面再粘贴一遍我的原代码,请大家指教!<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*,java.util.*"%>
<jsp:useBean id="joyrisingbean" scope="page" class="db.lxtconndb"/>
<!--DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"-->
<html>
<head>
<!--meta http-equiv="Content-Type" content="text/html; charset=gbk" /-->
<title>搜索纪念馆</title>
<style type="text/css">
<!--
.sssy {
font-size: 12px;
font-style: normal;
}
-->
</style>
</head><body bgcolor="#F0F8FF" onLoad="initIDselect()">
<form id="form1" name="form1" method="post" action="b.jsp" >
<span class="sssy">站内纪念馆搜索:
<select name="ssxx" onchange="onselectxx()" id="ssxx" size="1">
<option value="按纪念馆名" >按纪念馆名</option>
<option value="按纪念馆号"selected>按纪念馆号 </option>
<option value="按建馆人名">按建馆人名</option>
<option value="按用户编号">按用户编号</option>
<option value="按省份">按省份</option>
<option value="按纪念园区名">按纪念园区名</option>
<option value="按纪念园区号">按纪念园区号</option>
</select>
<select name="flxx" size="1" id="flxx">
</select>
<input type="submit" name="sumbit" id="sumbit" value="GO>>>" accesskey="s" />
</span></form>
<%
String sql = "SELECT * from jnr";
ResultSet rs = joyrisingbean.executeQuery(sql);%>
<script language="javascript">
function initIDselect(){
var flxx=document.getElementById('flxx');
<%rs.beforeFirst();
while(rs.next()){
%>
flxx.options.add(new Option(<%=rs.getInt("jng_id")%>,0));
<%}
%>
}
function onselectxx(){var flxx=document.getElementById('flxx');
flxx.options.length=0; //清除原有选项;
var ssxx=document.getElementById('ssxx');
var ssxxselectedtext=ssxx.options[ssxx.selectedIndex].text;<% rs.beforeFirst();
while(rs.next()){ %>switch (ssxxselectedtext){
case'按纪念馆号':
flxx.options.add(new Option(<%=rs.getInt("jng_id")%>,0));
break;
case '按建馆人名' :
flxx.options.add(new Option(<%=rs.getString("user_name")%>,0));
break;
case '按纪念馆名':
flxx.options.add(new Option(<%=rs.getString("reg_gm")%>,0));
break;case '按纪念园区名':
flxx.options.add(new Option(<%=rs.getString("reg_yqm")%>,0));
break;
case '按纪念园区号':
flxx.options.add(new Option(<%=rs.getInt("yq_id")%>,0));
case '按省份':
flxx.options.add(new Option(<%=rs.getString("jnr_city")%>,0));
break;
default:
}//end switch
<%}
//end while(rs.next())
//rs.close();
//rs=null;%>
}//end funtion onselectxx()
</script>
</body>
</html>