站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题有个空指针异常,请高手指教一下.

有个空指针异常,请高手指教一下.

摘要: 有个空指针异常,请高手指教一下.


我有一个index.jsp登陆页面,登陆成功之后,会把一个资源列表放到session里.
ArrayList arrayList = (ArrayList)comm.getDeviceList();
session.setAttribute("devList",arrayList);

然后转入main.jsp,在右边有个right.jsp是个树型列表,我用的梅花大师的树型列表,
然后我会在session里面取出资源列表.然后就是显示...

这本来一切都很正常的.
无论怎么刷新也不会产生异常..

可是今天我发现,登陆到main.jsp(框架页面)之后,然后我在地址栏的地方敲回车,就会抛出NullPointerException..提示是在下面的代码段里.

ArrayList arr = (ArrayList)session.getAttribute("devList");
if(arr==null)
response.sendRedirect("error.jsp?type=10");
int size = arr.size();
for(int i =0 ;i < size; i++){
HashMap h = (HashMap)arr.get(i);
int top_id = ((Integer) h.get("top_id")).intValue();
int nc_id = ((Integer) h.get("nc_id")).intValue();
int res_id = ((Integer) h.get("res_id")).intValue();
int res_type = ((Integer) h.get("res_type")).intValue();
int Res_vendor = ((Integer) h.get("Res_vendor")).intValue();
String res_name = (String)h.get("res_name");
}

提示是int size = arr.size();产生了异常..可是arr并不为空.怎么会产生异常呢..
请各位指点一下..很急..在线等....


在这个语句int size = arr.size();
前打印一下arr内容看看呢


刷新和在地址栏里敲回车,难道效果不是一样的吗?


在地址栏里ENTER
产生了一个新的get请求

供参考


刚刚测试了一下,在地址栏里敲回车.确实arr为空了...
可是我不明白的是,我在index.jsp里面把资源列表放到session里面了....
难道在地址栏里敲一下回车会把session里面的值给去掉吗?


在线等...


根本不是一个session了


minisun2000(红色枫叶) ( ) 信誉:100 Blog

高手请指点清楚点啊..谢谢..


如果让他们成为同一个session?或者其他的解决办法??

在线等,立刻解决,立刻给分.


不知道,帮顶一下,等你自己找解决方法


谢谢楼上的..帮顶也有分...


在线等...


你敲了一个ENTER等于向服务器发送一个新的请求
服务器会给你新开个session 当然不是一个session了
你要理解session的作用范围
一个session 可以跨越多个请求。
以及session的生命周期


那我想得到以前的session应该怎么得到?


如果用户非要在地址栏里敲回车的话,总不能给他一个错误指令吧...



不太明白啊,是不是在地址栏里写的是main.jsp啊。
那样就不好了,你可以将main.jsp的session设置成false.
让页面不能自已生成session.
然后在main.jsp中的开始处判断session是否存在,如果不存在,
则转到index.jsp页面里。这样就行了吧。
不知道你问的是不是这个意思。


解决了..
哎..没有一个人完整的回答了我的问题.


楼主怎么解决的呀


↑返回目录
前一篇: 请问,我用jfreechart做了一个3d的柱状图,怎么让柱子上显示柱子的值啊?
后一篇: 我有一条JS脚本,不知道是什么意思,希望大家帮帮忙