您的位置:程序门 -> java -> web 开发



谁能救救我,这段代码错在哪了


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


谁能救救我,这段代码错在哪了[已结贴,结贴人:gougouzhuzhu]
发表于:2007-07-29 17:27:23 楼主
我在上一页用了复选框,想在这个页中根据用户的选择显示数据库查询出的内容.我刚学jsp,不知道错在哪了.
resultset   rs;
        rs   =   conn.EXECutequery(sql);
if(rs.next())
{
if(partnamec.equals( "partnamec "))
{
%>

<div> 中文名: <%=rs.getobject(1)   %> </div>
<%
}
if(partnamee.equals( "partnamee "))
{              
%>
<div> 英文名: <%=rs.getstring( "partnamee ")   %> </div>
<%
                }
}
rs.close();
发表于:2007-07-29 18:19:551楼 得分:0
一般都是用while(rs.next()),而不是if(rs.next())
发表于:2007-07-29 19:21:502楼 得分:0
while我也用过了,结果是一样的也不好用
发表于:2007-07-29 19:26:363楼 得分:0
你应该把错误信息和香瓜信息描述下,比如你的sql,比如你的partnamec是从哪儿获取的
发表于:2007-07-29 19:42:144楼 得分:0
现在一定有两个页,第一个页放的是复选框.当用户提交后,就来到出问题这个页面.首先我先把前一页的这些复选项都接收了.然后查询数据库(这个地方应该问题不大).然后进行判断,如果用户选了则显示相应数据.
resultset   rs;
        rs   =   conn.EXECutequery(sql);
if(rs.next())
{

<div> 中文名: <%=rs.getobject(1)   %> </div>

<div> 英文名: <%=rs.getstring( "partnamee ")   %> </div>

}
rs.close();
如果这么写代码就没问题,我不知道为什么,如果还不详细,我就把代码都贴出来
发表于:2007-07-29 19:53:125楼 得分:0
报的什么错?
发表于:2007-07-29 19:54:076楼 得分:0
resultset   rs;
        rs   =   conn.EXECutequery(sql);
if(rs.next())
{%>

<div> 中文名: <%=rs.getobject(1)   %> </div>

<div> 英文名: <%=rs.getstring( "partnamee ")   %> </div>
<%
}
rs.close();
刚才写错了
发表于:2007-07-29 19:57:507楼 得分:0
type   exception   report

message  

description   the   server   encountered   an   internal   error   ()   that   prevented   it   from   fulfilling   this   request.

exception  

org.apache.jasper.jasperexception
org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:370)
org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:291)
org.apache.jasper.servlet.jspservlet.service(jspservlet.java:241)
javax.servlet.http.httpservlet.service(httpservlet.java:802)


root   cause  

java.lang.nullpointerexception
org.apache.jsp.searchinf_jsp._jspservice(org.apache.jsp.searchinf_jsp:75)
org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:97)
javax.servlet.http.httpservlet.service(httpservlet.java:802)
org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:322)
org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:291)
org.apache.jasper.servlet.jspservlet.service(jspservlet.java:241)
javax.servlet.http.httpservlet.service(httpservlet.java:802)


note   the   full   stack   trace   of   the   root   cause   is   available   in   the   apache   tomcat/5.5.9   logs.
报的错
发表于:2007-07-29 22:50:018楼 得分:0
up
看不出来
发表于:2007-07-30 11:17:579楼 得分:10
partnamec或partnamee为空值可能很大
发表于:2007-07-30 11:30:2210楼 得分:0
partnamec或partnamee为空值的话不会报空指针的消息的!顶多显示为null或空串!我感觉应该在if(rs.next())抛的空指针!因为rs的实例化就是失败的!rs的实例rs(实例失败)   =   conn(没有拿到).EXECutequery(sql);你自己看看连接conn是否为空!
发表于:2007-07-30 12:51:0011楼 得分:0
应该是变量partnamec或partnamee的空值问题
发表于:2007-07-30 12:54:4412楼 得分:0
.apache.jasper.jasperexception
说明把jsp转换成servlet时出错了
数据库操作要进行异常保护
try{

}catch
最好用eclipse或者jb看一下,你就知道该怎么改了
发表于:2007-07-30 13:52:3913楼 得分:0
partnamec或partnamee为空值的话不会报空指针的消息的!顶多显示为null或空串!我感觉应该在if(rs.next())抛的空指针!因为rs的实例化就是失败的!rs的实例rs(实例失败)   =   conn(没有拿到).EXECutequery(sql);你自己看看连接conn是否为空!

为什么实例化就是错的呢,没太明白,我是新手.我现在不明白为什么我不判断用户是否选取就能全部显示出来,而判断之后就报错.
发表于:2007-07-30 15:47:2914楼 得分:0
为什么把jsp写成asp呢,自讨烦恼吗不是
发表于:2007-07-31 12:41:4915楼 得分:0
to   opasdas()   对空对象做操作一定会报空指针异常的,你自己写程序试试。
发表于:2007-07-31 15:26:5216楼 得分:0
我刚学jsp~写程序很多都是参考书上的代码,楼上说的jsp写成asp是指哪一段啊.
我把if(partnamec.equals( "partnamec "))
改成==就好用了
但是还是没明白,为什么写成if(partnamec.equals( "partnamec "))
就会出错,哪个是空了?
发表于:2007-07-31 15:31:0817楼 得分:0
我刚学jsp~写程序很多都是参考书上的代码,楼上说的jsp写成asp是指哪一段啊.
我把if(partnamec.equals( "partnamec "))==> > if( "partnamec ".equals(partnamec))
改成==就好用了
但是还是没明白,为什么写成if(partnamec.equals( "partnamec "))
就会出错,哪个是空了?
发表于:2007-07-31 16:08:4018楼 得分:10
改==肯定好了,~~一般来说用equals这方法。都先写 " ".equals(partnamec).因为如果partnamec为null或没被初始化的情况下你调用其方法肯定出现空指针异常。你要反过来写就避免这个问题了。
发表于:2007-07-31 22:10:4019楼 得分:0
谢谢~


快速检索

最新资讯
热门点击