晕~~~~为什么这个collection的值输不出来!~~~~

zhaohh 2004-10-29 02:52:30
在servlet的部分代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
response.setContentType(CONTENT_TYPE);
Collection ret=new ArrayList();
try{
Statement stm=conn.createStatement();
ResultSet rs=stm.executeQuery("select count(*) from work_admin");
int message_count=0;
if(rs.next())
{
message_count=rs.getInt(1);
rs.close();
}
if(message_count>0)
{
rs=stm.executeQuery("select * from work_admin order by CreateTime desc");
while(rs.next())
{
int ID=rs.getInt("Admin_id");
String username=rs.getString("username");
String password=rs.getString("password");
String Email=rs.getString("Email");
String Telephone=rs.getString("Telephone");
java.sql.Date CreateTime=rs.getDate("CreateTime");
java.sql.Date LastLoginTime=rs.getDate("LastLoginTime");
String IP=rs.getString("LastLoginIP");
UserAdd message=new UserAdd();
message.setID(ID);
message.setUsername(username);
message.setPassword(password);
message.setEmail(Email);
message.setTelephone(Telephone);
message.getCreateTime(CreateTime);
message.getLastLoginTime(LastLoginTime);
message.setIP(IP);
ret.add(message);
}
rs.close();
stm.close();
}
request.setAttribute("UserLists",ret);
request.getRequestDispatcher("/jsp_bin/User_Manage.jsp").forward(request,response);
}
catch(Exception e)
{
e.printStackTrace();
}
}
在User_Manage.jsp代码如下:
Collection userlist=(Collection)request.getAttribute("UserLists");
out.print(userlist);///---->这里输出来是null值?????
Iterator it=userlist.iterator();
while(it.hasNext()){
UserAdd list=(UserAdd)it.next();
}
...全文
131 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhaohh 2004-10-30
我这种方法是模仿
<<jsp应用开发详解>>第二版
回复
zhaohh 2004-10-30
我煞试试看
回复
tom2005 2004-10-29
测试一下ret添上值了吗
回复
umljsp 2004-10-29
你这种做法根本就是错误的
回复
jiang_xiao 2004-10-29
接口可以指向一个实现了该接口的类
不能实例花
回复
dlxu 2004-10-29
为什么要执行2次SQL语句呢,就执行后面的语句1次就可以了,如果没有值的话是不可能进入循环语句在ArrayList里面放值的。
我记得好像是一个Statement执行完一次Sql语句后就失效了,需要重新create一个Statement的,你再看看。



PS. 还有上面一位兄弟说错了:

回复人: cwx714(小螃蟹) ( ) 信誉:100 2004-10-29 16:00:00 得分: 0
Collection ret=new ArrayList();改成:Collection ret=new Collection();试试。


Collection是个接口。你怎么可能实例化呢。


回复
yaray 2004-10-29
既然找不到原因,就试着换一种方式吧:

存值:
session.setAttribute("UserLists",ret);


取值:
Collection ret = (Collection) session.getAttribute(("UserLists");
session.remove(("UserLists"); //避免session绑定太多的资源
回复
zhaohh 2004-10-29
sql里有东西的,不知道为什么输不出来!
回复
zzttzz 2004-10-29
一般有request.setAttribute("UserLists",ret);
request.getRequestDispatcher("/jsp_bin/User_Manage.jsp").forward(request,response);
就行!
不会是你的SQL没东西
回复
紫翎观星 2004-10-29
Collection ret=new ArrayList();改成:Collection ret=new Collection();试试。
回复
zhaohh 2004-10-29
能有其他的办法解决吗??
回复
边城狂人 2004-10-29
你的 Servlet 的 request 和 JSP 的 request 应该不是同一个 Request 实例吧。
建议你用 session 来解决——不过 session 比较耗资源,还是用参数传递来解决比较好,不过你的这个程序用参数又不好传递
回复
zhaohh 2004-10-29
我自己先顶一下!
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告