关于数据库查询的有关问题,求帮助

   阅读
关于数据库查询的问题,在线等,求帮助
UserbeanDao类:
public ArrayList query(){
ArrayList list = new ArrayList();
Userbean userbean = null;//声明Userbean类
String sql ="";
sql = "select m.*,p.medset,p.userset,p.updoset from manager m left join purview p on m.id=p.id";//左连接连接查询
ResultSet rs =conn.executeQuery(sql);
try{
while(rs!=null && rs.next()){
userbean =new Userbean();
userbean.setId(rs.getInt(1));
userbean.setName(rs.getString(2));
userbean.setPwd(rs.getString(3));
userbean.setSex(rs.getString(4));
userbean.setEmail(rs.getString(5));
userbean.setMedset(rs.getInt(6));
userbean.setUserset(rs.getInt(7));
userbean.setUpdoset(rs.getInt(8));
list.add(userbean);
System.out.println("1111111111111"+list.size());
}
}
catch(SQLException e){
e.printStackTrace();
}
return list;
}

}
servle类中public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {
ArrayList newlist=new UserbeanDao().query();
System.out.println("22222222222"+newlist.size());
request.setAttribute("info",newlist);
request.getRequestDispatcher("user.jsp").forward(request, response);
}
在jsp页面中为什么获取不到数据,空指针错误<% ArrayList listuser=(ArrayList)request.getAttribute("info");
    System.out.println("33333333"+listuser.size());%>

------解决方案--------------------
request.setAttribute("info",newlist); 这个有数据吗?
------解决方案--------------------
抛空指针错误是因为页面上request.getAttribute("info");为空,楼主你先看看后台查询回来的newlist是不是空,然后再看看前台,另外你的跳转好像有点问题request.getRequestDispatcher("user.jsp").forward(request, response);的时候,好像request的东西就被清空了,等到你页面上的时候info可能就已经是空的了
------解决方案--------------------
肯定是没数据嘛

<% ArrayList listuser=(ArrayList)request.getAttribute("info");
    System.out.println(listuser);
    if(listuser != null){
    System.out.println("33333333"+listuser.size());
    }

%> 
------解决方案--------------------
引用:
Quote: 引用:

request.setAttribute("info",newlist); 这个有数据吗?

调试了,是有数据的


如果这个有数据的话,那就是你jsp return回去的时候,数据丢失了,你可以换个页面return的方式。
------解决方案--------------------
看你的写法是没问题的,你看下是哪行空指针了
------解决方案--------------------
listuser是空的,之前都是用的struts控制跳转的,servlet跳转没用过,不过百度了一下,楼主的写法确实是对的。原因还是你没传过去,换个名字试试。虽然觉得跟名字没关系,要不先传个String看看能接受到不
------解决方案--------------------
你看下

111111
222222

打印出来没有,如果都打印出来的话,333报空指针,说明你跳转有问题,还有就是你那种跳转是带了参数的,没带参数的是send()方法那种。。。你仔细检查下你跳转那。。。。
------解决方案--------------------
引用:
Quote: 引用:

你看下

111111
222222

打印出来没有,如果都打印出来的话,333报空指针,说明你跳转有问题,还有就是你那种跳转是带了参数的,没带参数的是send()方法那种。。。你仔细检查下你跳转那。。。。

这种跳转是没问题的,是333报空指针,应该是没有传过我去...


我的意思是,看222后面的size有没有出来值,估计应该是没有传过去的原因
------解决方案--------------------
我实验过了,楼主这样写没问题啊,把你完整的代码贴出来看看吧。
阅读