晕~~~~为什么这个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();
}
...全文
171 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
我自己先顶一下!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧