打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Session中ArrayList对象的传递方法
(2012-09-13 21:16:55)
标签: 杂谈
分类: JAVA
一般认为session中是不能直接传ArrayList对象的,因为在session封装数据之后,数据类型都是Object。在取值时会遇到麻烦。如下:    数据封装:
ArrayList<EmpBean> list ;
request.getSession().setAttribute("list",list);
脚本文件中取出数据:
ArrayList<EmpBean> list = (ArrayList<EmpBean>)session.getAttribute("list");
这时,如果你想通过遍历的方式去取出list中封存的EmpBean对象,就不行了,编译后报错为:
-------------------------------------------------------------------------
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 37 in the jsp file: /EmpList.jsp
Generated servlet error:
Syntax error on token "<", invalid AssignmentOperator
An error occurred at line: 37 in the jsp file: /EmpList.jsp
Generated servlet error:
Syntax error on token "=", != expected
An error occurred at line: 37 in the jsp file: /EmpList.jsp
Generated servlet error:
Syntax error on token ">", Expression expected after this token
-------------------------------------------------------------------------
通常会认为是jsp中嵌入的脚本文件出了问题,比如括号不匹配、标点有误或者java代码书写出错等等。但是事实上是编译器无法处理ArrayList数据包的强制类型装换,因而出错。
解决办法如下:
在脚本文件中取出数据时不要直接转换为ArrayList,而是分两步进行类型转换,如下:
-------------------------------------------------------------------------
ArrayList list = (ArrayList)session.getAttribute("list");
for(int i=0;i
EmpBean bean = (EmpBean)list.get(i);
}//然后就可以对bean对象进行操作了,系统不会再报错误
-------------------------------------------------------------------------
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【转】京东面试题
java最常见200+面试题及解析
Java面试题集
JSP的9个内置对象
java session cookie 失效时间 时长
JAVA面试题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服