jsp新手,小问题求救下

asunx 2010-10-02 08:43:01
<%
ArrayList list=(ArrayList)session.getAttribute("searchList");

for(int i=0; i<list.size(); i++){
Book book=(Book)list.get(i);
%>
<tr>
<td><%=book.getBookId() %></td>
<td><%=book.getBookName() %></td>
<td><%=book.getBookAuthor() %></td>
<td><%=book.getBookPress() %></td>
<td><%=book.getBookPrice() %></td>
</tr>
<%
}
session.removeAttribute("searchList");
%>

以上的代码有错误吗?运行时老是报错。删掉以上代码运行时,就不会报错了。所报错误如下:
type Exception report

message

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

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

怀疑是不是(ArrayList)session.getAttribute("searchList"); 这里,searchList不存在的原故。
报错是在载入此页面时,就报了异常。看了下,在这之前,没有设置过session的searchList属性。
我打开了调试,发现运行ArrayList list=(ArrayList)session.getAttribute("searchList");后。list是null.
原意也是这样,第一次载入这个页面时,list反回的是空,让其不执行这段代码。当点击搜索后,把搜索后的结果保存在searchList里,然后载入此页面时,就可以显示搜索结果。
...全文
113 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
asunx 2010-10-02
  • 打赏
  • 举报
回复
谢谢了
dingling136 2010-10-02
  • 打赏
  • 举报
回复
怎么获取积分啊,着急下载东西啊
yumyy 2010-10-02
  • 打赏
  • 举报
回复
你的空指针是list.size()报的,在循环前加判断list!=null
yumyy 2010-10-02
  • 打赏
  • 举报
回复
你的空指针是list.size()报的,在循环前加判断list!=null
asunx 2010-10-02
  • 打赏
  • 举报
回复
解决了。谢谢了。
在载入之前,先设置了searchList.
在载入之前的servlet类里。加入了
java.util.ArrayList list = new java.util.ArrayList();
request.getSession().setAttribute("searchList",list);
果然好了,谢谢了。不知道还有没有更好的方法。或者,我上面加入的语句是否有Bug
asunx 2010-10-02
  • 打赏
  • 举报
回复
解决了。谢谢了。
在载入之前,先设置了searchList.
asunx 2010-10-02
  • 打赏
  • 举报
回复
我的原意是需要,第一次载入此jsp页面时,ArrayList list=(ArrayList)session.getAttribute("searchList");
这一句执行后,list.size()就应该为0.从而不会执行下面的代码。进行搜索后,搜索结果才附给searchList,第二次载入时,才让其执行。
yumyy 2010-10-02
  • 打赏
  • 举报
回复
在之前用
session.setAttribute("searchList",ArrayList对象);
把“searchList”赋值!
asunx 2010-10-02
  • 打赏
  • 举报
回复
那要怎么改呀?
DryKillLogic 2010-10-02
  • 打赏
  • 举报
回复
对啊,你的session中的属性是空,当然就会报空指针异常了

81,122

社区成员

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

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