java拼接tree结构的数据返回展示给flex前台

数据库结构:

因为flex前台的tree需要绑定一个xml的文件,这里数据量不是很大,选择一次性全部加载返回xml给前台,代码如下

//获取元数据路径的数据(为XML格式)
 public String convertDataToXml()throws Exception{
  if("".equals(xmlData)||xmlData==null){
   List<DeclarationDataPath> alldeclarationDataPaths = findAllDeclarationDataPath();
   List<DeclarationDataPath> topDeclarationDataPaths = findTopDeclarationDataPath();
   String treedata="<node foddersortId='0' fodderso" +
   "rtName='所有分类'>\n";
   for(DeclarationDataPath dpath:topDeclarationDataPaths){
    if(removelists.size()>0){
     String result="";
     for(int i=0;i<removelists.size();i++){
      if(i+1==removelists.size()){
       result+=removelists.get(i).toString();
      }else{
       result+=removelists.get(i).toString()+",";
      }  
     }
     String sql = "select * from "+TABLENAME+" where menuitemid not in ("+result+")" +" order by "+SORTNUM ;
     alldeclarationDataPaths = findDeclarationDataPathByJDBC(sql);
    }
    treedata=treedata+"<node nodeId='"+dpath.getMenuItemId() +"' nodeName='"+dpath.getMenuItemTitle()+"' nodeparentId='"+dpath.getParentId()+"'>\n";
    //alldeclarationDataPaths.removeAll(removelists);
    treedata=createXmlNode(alldeclarationDataPaths,dpath.getMenuItemId(),treedata); 
    treedata=treedata+"</node>\n"; 
   } 
   treedata=treedata+"</node>\n";
   xmlData = treedata;
   return treedata;
  }
  else{
   return xmlData;
  }
 }
 private List<Integer> removelists = new ArrayList<Integer>();
 
 
 
 
 //递归解析数据-->xml
 public String createXmlNode(List<DeclarationDataPath> list,String dpathId,String cratedata)throws Exception {
  //String sql = "select * from "+TABLENAME+" a where a."+PARENTID+"="+dpathId;
   for(int a=0;a<list.size();a++) {
    DeclarationDataPath dpath = list.get(a);
    if(null==dpath.getParentId()||"".equals(dpath.getParentId())){
     
    }else {
     if(dpath.getParentId().equals(dpathId)){
      //list.remove(dpath);
      removelists.add(Integer.parseInt(dpath.getMenuItemId()));
      cratedata=cratedata+"<node nodeId='"+dpath.getMenuItemId()
      +"' nodeName='"+dpath.getMenuItemTitle()+"' nodeparentId='"+dpath.getParentId()+"'>\n";
      cratedata = createXmlNode(list,dpath.getMenuItemId(),cratedata);
      cratedata = cratedata+"</node>\n";  
     }else {
      
     }
     
    }
   }
  return cratedata;
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值