从JSP页面调用查询语句就报空指针,但是从java文件中调用缺显示正常

zhoujiao2008 2015-01-07 01:59:41
<%
}else if("edit".equals(action)){
Integer id = Integer.parseInt(request.getParameter("id"));

CalendarDao calendarDao = new CalendarDaoImpl();
Calendar calendar = new CalendarDaoImpl().findById(id);
这个是JSP文件里调用的findById方法,
	Calendar calendar = calendarService.findById(id);
String start = calendar.getStart();
这个是java文件中调用的findById方法;
@Override
public Calendar findById(Integer id) {
// TODO Auto-generated method stub
System.out.println(id);
String sql = "select * from fullcalendar where id = "+id;
List<Map<String, Object>> list = null;
try{
list = jdbcTemplate.queryForList(sql);
}catch(Exception e){
e.printStackTrace();
}
Map<String, Object> map = list.get(0);
Calendar calendar = new Calendar();
calendar.setId(Integer.parseInt(map.get("id").toString()));
calendar.setTitle(map.get("title").toString());
calendar.setStart(map.get("start").toString());
calendar.setEnd(map.get("end").toString());
calendar.setAllDay(Integer.parseInt(map.get("allday").toString()));
calendar.setColor(map.get("color").toString());
return calendar;
}

这个是dao层里面的方法。
我从java文件里面调用这个方法都能打印出来,为什么从JSP文件里调用就提示空指针,错误如下:
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.njceb.dao.impl.CalendarDaoImpl.findById(CalendarDaoImpl.java:97)
at org.apache.jsp.pages.event_jsp._jspService(event_jsp.java:190)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.njceb.interceptor.JspReqFilter.doFilter(JspReqFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

这个只是我写的一个日程控件的Demo,初学者,只想知道什么原因,请大侠们能够给错误说下原理,接触JAVA不久,还请多多指教。
...全文
582 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Scaarf 2016-12-25
  • 打赏
  • 举报
回复
2015-01-07
Scaarf 2016-12-25
  • 打赏
  • 举报
回复
 List<Map<String, Object>> list = null;
改成
 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
试试
什么都不能 2016-12-25
  • 打赏
  • 举报
回复
没查到记录,数据库里没指定ID的记录
ht15602261894 2016-12-25
  • 打赏
  • 举报
回复
爱;找了挺久;终于知道了;因为myEclipse或者自己装的tomcatlib目录下没有数据库驱动,你将驱动jar包放在tomcat下的lib目录下就可以了.亲自试验了
ht15602261894 2016-12-25
  • 打赏
  • 举报
回复
楼主解决没?我也遇到了同样的问题.
qq_26004821 2016-12-25
  • 打赏
  • 举报
回复
把 数据库的jar驱动包拷贝到你Tomcat的lib下 相信你就可以成功了
master_y 2015-01-27
  • 打赏
  • 举报
回复
at com.njceb.dao.impl.CalendarDaoImpl.findById(CalendarDaoImpl.java:97) 97行的代码问题,代码贴出来看看
sinat_15114467 2015-01-22
  • 打赏
  • 举报
回复
Server 把得到的list传到jsp不就好了 request.getAttribute() ------------------------------ 你jsp页面又没连接数据库
rumlee 2015-01-07
  • 打赏
  • 举报
回复
单步打印一下看看具体是哪一行报空指针不就知道了。这种问题都搞不定那你可怎么办啊?
zhoujiao2008 2015-01-07
  • 打赏
  • 举报
回复
ID是传递过去了,打印出来的SQL语句也是正常的,但是就是报LIST为空。我是想知道原因,资料上没有查到相关的东西。
Kiln 2015-01-07
  • 打赏
  • 举报
回复
LZ,你是采用的是注入的方式吧。你从jsp里面直接new一个是拿不到数据库连接的。你的数据库连接应该是从spring的ioc的方式获取的。所以你在JSP里面肯定就报空指针了。
zhoujiao2008 2015-01-07
  • 打赏
  • 举报
回复
list = jdbcTemplate.queryForList(sql);这一行报空指针,我说了不是每次调用都是空指针,是调用位置不一样才会显示空指针,麻烦问题看清楚。

81,122

社区成员

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

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