又出现NullPointerException错误!!!

javatotheworld 2008-07-14 09:27:14
做了个简单的查询页面:
错误: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)

<%@ 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>



...全文
255 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxxlzj520 2008-07-18
  • 打赏
  • 举报
回复
抄书都抄不对~~~
javatotheworld 2008-07-18
  • 打赏
  • 举报
回复
抄书是对的,后来我自己改了下就出错了怎么就从form里取不出值
所以我很奇怪啊
打印的结果是trainCode为null
nweida 2008-07-18
  • 打赏
  • 举报
回复
在页面上取值,如果不进行null判断极容易出现NullPointerException


<%
Train t=(Train)session.getAttribute("result");
session.removeAttribute("result");
%>
后面家个个判断
<%
//t的长度是不是大于1
if(t的长度是不是大于1){
//显示你查询结果。。
%>
bjtusq 2008-07-18
  • 打赏
  • 举报
回复
没传值吧
zhangjg2124 2008-07-18
  • 打赏
  • 举报
回复
result_jsp.java:63 究竟你你页面的哪一行啊?
javatotheworld 2008-07-17
  • 打赏
  • 举报
回复
谢谢楼上,我看看Handler
打印一下
KOOK_OKKO 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 javatotheworld 的回复:]
已经用输出语句试了,发现trainCode是null
可是怎么没有通过Form传过来呢
[/Quote]

应该全部都为null吧,只是你trainCode在第一,所以先显示trianCode



估计是你的Handler里出异常了,导致传回空的train

Train t = new Handler().getQueryResult(trainCode);打印看看是不是空
kbyst 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zhengbr 的回复:]
List list = query.list();
for(int i=0;i <list.size();i++) {
t = (Train) list.get(i);
}
tx.commit();

看这段,你还没有提交,所以List里根本就什么也没有,list.get(i);肯定是空指针啊
你要先把东西查出来
[/Quote]

对hibernate在瞬态与持久态时与数据库交互不太懂
但感觉好像缺少执行

还有这里
<%=t.getTerminalTime() %>
不知道数据库中是怎么定义的,不转string型是否能取道

楼主再检查检查吧,应该是小问题吧
javatotheworld 2008-07-16
  • 打赏
  • 举报
回复
已经用输出语句试了,发现trainCode是null
可是怎么没有通过Form传过来呢
ChocooM 2008-07-16
  • 打赏
  • 举报
回复
1。你可以通过debug来调试程序,只要把断点加在报错的那一行就可以了
2。(很笨的方法)在程序中添加System.out.println()输出语句,在console上看输出的结果,然后找出问题所在
javatotheworld 2008-07-16
  • 打赏
  • 举报
回复
测试的结果是我的trainCode没有传过来,怎么出现这样的情况呢,我从ActionForm中获得的数据啊
String trainCode=tForm.getTrainCode()
windows00 2008-07-15
  • 打赏
  • 举报
回复
楼主慢慢找,空指针太正常了,建议把result.jsp的部分代码先注释掉,
用“二分法”找出抛出NullPointerException的地方。
javatotheworld 2008-07-15
  • 打赏
  • 举报
回复
try {
query = session.createQuery("from Train t where t.trainCode=?");
query.setString(0,code);
List list = query.list();
for(int i=0;i<list.size();i++) {
t = (Train) list.get(i);
}
tx.commit(); //提交到数据库
我提交了啊,还是没有数据
B1977 2008-07-15
  • 打赏
  • 举报
回复
List list = query.list();
for(int i=0;i<list.size();i++) {
t = (Train) list.get(i);
}
tx.commit();

看这段,你还没有提交,所以List里根本就什么也没有,list.get(i);肯定是空指针啊
你要先把东西查出来
storm_huang 2008-07-15
  • 打赏
  • 举报
回复
楼主都没有给出关键的result.jsp,你给出的那个jsp是出入条件的。
个人感觉应该是result.jsp没有对t做空指针判断,有可能查询出来的 结果是空的

javatotheworld 2008-07-15
  • 打赏
  • 举报
回复
result.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<%@page import="com.suncreate.Train" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>显示查询结果</title>
</head>
<%
Train t=(Train)session.getAttribute("result");
session.removeAttribute("result");
%>
<body bgcolor="#ffffff">
<h1><center>列车车次查询结果</center></h1>
<table align="center" border=0 cellspacing=5 cellpadding=1 width=80%>
<tr width="80%">
<td width="50%">列车车次:
</td>
<td width="50%">
<%=new String(t.getTrainCode().getBytes("ISO8859_1")) %>
</td>
</tr>
<tr width="80%">
<td width="50%">始发站:
</td>
<td width="50%">
<%=new String(t.getStartStation().getBytes("ISO8859_1")) %>
</td>
</tr>
<tr width="80%">
<td width="50%">始发时间:
</td>
<td width="50%">
<%=t.getStartTime() %>
</td>
</tr>
<tr width="80%">
<td width="50%">终点站:
</td>
<td width="50%">
<%=new String(t.getTerminal().getBytes("ISO8859_1")) %>
</td>
</tr>

<tr width="80%">
<td width="50%">到达时间:
</td>
<td width="50%">
<%=t.getTerminalTime() %>
</td>
</tr>
<tr width="80%">
<td width="50%">全程票价:
</td>
<td width="50%">
<%=new String(t.getPrice().getBytes("ISO8859_1")) %>
</td>
</tr>
</table>
</body>
</html>
limon758 2008-07-15
  • 打赏
  • 举报
回复
用端点查看空指针最方便了
minlucky 2008-07-15
  • 打赏
  • 举报
回复
楼主测试下你从TrainActionForm 取出的trainCode 是不是NULL。
从异常看应该是trainCode 值为NULL,执行查询是抛出空指针异常。
zidasine 2008-07-15
  • 打赏
  • 举报
回复
看一下result_jsp.java:63
看看这里到底是什么
javatotheworld 2008-07-15
  • 打赏
  • 举报
回复
难道是我的trainCode没有传过去?
等下我贴出result.jsp 的代码啊
加载更多回复(6)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧