查询报NullPointerException错误:做了个简单的查询页面: 错误:java.lang.NullPointerException org.apache.
查询报NullPointerException错误 :
做了个简单的查询页面: 错误:java.lang.NullPointerException org.apache.jsp.result_jsp._jspService(result_jsp.java:63) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Java code<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>列车车次查询</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body bgcolor="#ffffff"> <h1><center>列车车次查询系统</center></h1> <form action="trainAction.do" method="post"> <br> <br> 列车车次:<input type="text" name="traincode"><br> <br> <input type="submit" value="查询" name="query"> </form> </body></html> ------解决方法-------------------------------------------------------- trainAction.do
是什么。
------解决方法-------------------------------------------------------- 哎呀,原来你还没发完,,明天再来,睡觉去。
------解决方法-------------------------------------------------------- finaly里要加上HibernateUtil.closeSession();吧,不然出错后session就不用关闭了
空指针异常,你找你用到的变量看是否有值
------解决方法-------------------------------------------------------- 看一下result_jsp.java:63
看看这里到底是什么
------解决方法-------------------------------------------------------- 你测试下你从TrainActionForm 取出的trainCode 是不是NULL。
从异常看应该是trainCode 值为NULL,执行查询是抛出空指针异常。
------解决方法-------------------------------------------------------- 用端点查看空指针最方便了
------解决方法-------------------------------------------------------- 你都没有给出关键的result.jsp,你给出的那个jsp是出入条件的。
个人感觉应该是result.jsp没有对t做空指针判断,有可能查询出来的 结果是空的
------解决方法-------------------------------------------------------- List list = query.list();
for(int i=0;i <list.size();i++) {
t = (Train) list.get(i);
}
tx.commit();
看这段,你还没有提交,所以List里根本就什么也没有,list.get(i);肯定是空指针啊
你要先把东西查出来
------解决方法-------------------------------------------------------- 你慢慢找,空指针太正常了,建议把result.jsp的部分代码先注释掉,
用'二分法'找出抛出NullPointerException的地方。
------解决方法-------------------------------------------------------- 探讨 List list = query.list(); for(int i=0;i <list.size();i++) { t = (Train) list.get(i); } tx.commit(); 看这段,你还没有提交,所以List里根本就什么也没有,list.get(i);肯定是空指针啊 你要先把东西查出来 ------解决方法-------------------------------------------------------- 1。你可以通过debug来调试程序,只要把断点加在报错的那一行就可以了
2。(很笨的方法)在程序中添加System.out.println()输出语句,在console上看输出的结果,然后找出问题所在
------解决方法--------------------------------------------------------