解决方案 »
- 类加载以及类初始化问题
- 关键字:JDialog,KeyListener,JPanel,JButton,真的很奇怪,大家来看看~
- propertes 中的 store(out, header)方法输出:会变成/:
- 请教个问题:我不太会用指针,能不能在工作中打死也不用指针
- java 如何判断操作系统是Linux还是Windows?
- 关于异常捕获的问题
- 我的JTree响应无效!?
- 如何去掉文件后的许多空格??
- 请问在linux下有没有像jcreator那样适合初学者的工具?
- 谁能解释一下JNDI,好象比较抽象,不好理解!
- hibernate反向生成文件
- java中if语句的问题,我突然发现的,求解释
这样子转换应该没错的啊。
//request.getSession().setAttribute("list", al);
有在此处加个断点调试一下吗?有真正set过来了没啊?
,取得时候应该用session取,ArrayList)request.getSession().getAttribute("list");
这样写不好吧,还有,你 ArrayList al=new ArrayList();
这样new了一个对象,在页面取得时候那样不转换取很危险的,应该写个保险的,比如这样写List<Tb_newTaskVo> list = new ArrayList<Tb_newTaskVo>();
取值时这样迭代List<?> list = (List<?>)request.getAttribute("list");
for(int i = 0; i < list.size(); i++){
Tb_newTaskVo voo= (Tb_newTaskVo)list.get(i);
这样写肯定不会出问题的
al的值可以打印在控制台,但是获取size 的时候显示null .
我上午找了许多相类似的问题,都是request.getSession().setAttribute("list", al);或者request.setAttribute("list", al);在转换成ArrayList到jsp页面 的时候为null,但是查无明确解决之法!
原来项目使用的是jdk1.4 ,不支持泛型,session.getAttribute("list");我也有试过,效果一样的呢
Action:ArrayList tt = new ArrayList();
tt.add("a");
tt.add("b");
tt.add("c");
System.out.println("测试:" + tt);
request.getSession().setAttribute("tt", tt);
request.getRequestDispatcher("../test.jsp")
.forward(request, response);
页面:test.jsp<%
List al=(List)request.getSession().getAttribute("tt");
if(al != null){
out.print(al.size());
}
%>
我估计你大概把Jsp中的属性范围方面出问题了。
jsp中有9个内置对象,其中pageContext,request,session,application可以做一个好似容器的东西来用,向容器里放东西,使用setAttribute(String name,Object value),取得可用getAttribute(String name).其中:
pageContext.setAttribute(String name,Object value)设置后,只可在当页面取得,无论采取什么样的跳转都不会取到值
request.setAttribute(String name,Object value)设置后,用服务器端跳转的方式可取到值
session.setAttribute(String name,Object value)设置后,无论采用什么样的跳转都可以取到值、
application.setAttribute(String name,Object value)设置后,在整个的应用中都可以取得,不关闭服务器,容器的东西会一直存在.
大家早,我调用了两次action,每次都把查出来的值set进request里面,而且我自己测试int类型
ArrayList tt=new ArrayList();
tt.add("a");
tt.add("b");
tt.add("c");
System.out.println("测试:"+tt);
request.setAttribute("tt", tt);
完全没有问题,网上找到其他人的问题和我的类似,都是转化为ArrayList 的时候,出现了错误,可以打印,但是值为null
大侠你好,ArrayList 放进去的值是string类型,这个我有测试,可以取到值,但是我里面的元素是一个表对象的实例,Tb_newTaskVo voo = null;
String sql = "SELECT RWBT , YWLX , LYDW , LRY , BLSJ , URL FROM Tb_NewTask"+" "+condition;
System.out.println(sql);
//System.out.println(condition);
try {
stmt=conn.createStatement();
//System.out.println("1");
rs=stmt.executeQuery(sql);
//System.out.println("2");
while(rs.next()){
voo = new Tb_newTaskVo();
voo.setrwbt(rs.getString(1));
voo.setywlx(rs.getString(2));
voo.setlydw(rs.getString(3));
voo.setlry(rs.getString(4));
voo.setblsj(rs.getDate(5));
voo.seturl(rs.getString(6));
al.add(voo);
}
这样取出的就为null了,我百度ArrayList al=(ArrayList)request.getAttribute("list");//类型转换错误,会发现很多和我类似的问题,就是取到的值为null,但是我看了他们的问题,都没有明确的解决回答!
ArrayList al=(ArrayList)request.getSession().getAttribute("list");天知道为什么好使了。。