现在的位置: 首页 > 综合 > 正文

关于DWR中传递集合类型不是一个对象的解决方案(list为例)

2013年01月26日 ⁄ 综合 ⁄ 共 1085字 ⁄ 字号 评论关闭

开发过程中,dwr里面传递list无疑是最好的解决方法,方便而且快捷,但是前提是这个list内部必须是一个封装好的对象,那么问题产生了,如果这个list里面存放不是一个对象呢?比如说从两个或者多个表里面取出一些数据集成到一起,那么需要怎么传递到页面上,又怎么显示呢?

所以只能传递数组了,但是数组的size如何获取?只能通过list的size转化了,简单代码如下:

  1. /**
  2.  * 
  3.  * @param id
  4.  * @return
  5.  * @author 李晗
  6.  */
  7. public Object[] getModelById(String id)
  8. {
  9.     int i=Integer.parseInt(id);
  10.     LawModel lm=this.lawDocumentsService.getLawModelById(i);
  11.     List<Object> u=new ArrayList<Object>();
  12.     u.add(0, lm.getModelName());
  13.     List list= this.lawDocumentsService.find("from ModelOrder mo where mo.lawModel.id="+i);
  14.     Iterator iterator=list.iterator();
  15.     while(iterator.hasNext())
  16.     {
  17.         ModelOrder mo=(ModelOrder)iterator.next();
  18.         u.add(mo.getPeople().getRealName());
  19.     }
  20.     int size=list.size();
  21.     Object[] str=new Object[size];
  22. //list到数组转化
  23.     for(int k=0;k<size;k++)
  24.     {
  25.         str[k]=u.get(k);
  26.     }
  27.     return str;
  28. }

前台页面回调函数里面直接遍历这个数组即可

  1. function ShowIt(id) 
  2. {
  3.     return LawDocumentsDWR.getModelById(id,setModel)
  4. }
  5. function setModel(date)
  6. {   
  7.         for(var i in date)
  8.         {
  9.            html+=。。。。。;
  10.         }
  11.         document.getElementById("div").innerHTML=html;  
  12. }

抱歉!评论已关闭.