日期:2014-05-18  浏览次数:20697 次

请问:Cannot create iterator for this collection 这个错误是怎么引起的?
请问:Cannot create iterator for this collection 这个错误是怎么引起的?

我在用ssh做个bbs是出现这个问题;
我是要实现这样的功能:在这个action里面查找出一个主题贴的所以回帖的作者信息,然后存放在一个名字为replyer的List里面并返回到jsp 页面,该页面有回帖的连接,当没有回帖是正常显示,点击回帖连接并回帖后返回原页面也正常,当再回帖是就不行了:报错:Cannot create iterator for this collection !


action类部分源码如下:

public ActionForward execute(ActionMapping mapping, ActionForm form,
  HttpServletRequest request, HttpServletResponse response) {
  Integer id=Integer.parseInt(request.getParameter("id"));
  Topic t=sts.showTopic(id);
  t.setTopicSnum(t.getTopicSnum()+1);
  sts.update(t);

  Userinfo author=sts.findbyId(t.getUserId());
   
  //保存作者信息
  request.setAttribute("author", author);
  //保存帖子信息
  request.setAttribute("t", t);
  //保存回帖信息(List)
  List rlist=srs.showReply(id);
  request.setAttribute("rlist", rlist);
  //保存回复者信息
  List<Userinfo> replyer=new ArrayList<Userinfo>();
  for(int i=0;i<rlist.size();i++){
  int uid=((Reply)rlist.get(i)).getUserId();
  Userinfo user=sts.findbyId(uid);
  replyer.add(user);
  }
  request.setAttribute("replyer", replyer);
  return mapping.findForward("show");
  }



jsp部分代码如下:

 <logic:present name="replyer">
  <logic:iterate id="replyer" name="replyer">
  <logic:equal value="${r.userId}" property="userId" name="replyer">
  <b>${replyer.userNickname}</b><br><br>
  帖子:${replyer.userNum }<br>
  积分:${replyer.userIntegral}<br>
  注册:${replyer.userRegtime}  
  </logic:equal>  
  </logic:iterate>
  </logic:present>


当回复一次时可以正常显示,但再回帖就出这个错误。
各位高手,请帮小弟看看,先谢了!


------解决方案--------------------
<logic:iterate id="replyer" name="replyer" > 


你就不能换个id么?