@Entity
public class PubComp {
 @Id
 private String aguid; // 菜单ID
 private String pguid; // 父菜单
 private String aname;// 名称

}

public class TreeNode {
  private String id;          //要显示的子节点的ID 
     private String text;        //要显示的子节点的 Text 
     private String iconCls;     //节点的图标 
     private String parentId;    //父节点的ID 
     private List<TreeNode>  children;   //孩子节点的List 
    
     public TreeNode(){}
  public TreeNode(String id, String text, String iconCls,
    String parentId, List<TreeNode> children) {
   super();
   this.id = id;
   this.text = text;
   this.iconCls = iconCls;
   this.parentId = parentId;
   this.children = children;
  }
  public String getId() {
   return id;
  }
  public void setId(String id) {
   this.id = id;
  }
  public String getText() {
   return text;
  }
  public void setText(String text) {
   this.text = text;
  }
  public String getIconCls() {
   return iconCls;
  }
  public void setIconCls(String iconCls) {
   this.iconCls = iconCls;
  }
  public String getParentId() {
   return parentId;
  }
  public void setParentId(String parentId) {
   this.parentId = parentId;
  }
  public List<TreeNode> getChildren() {
   return children;
  }
  public void setChildren(List<TreeNode> children) {
   this.children = children;
  }
  
  //添加子菜单的方法 
     public void addChild(TreeNode node){ 
        if(this.children == null){ 
            children= new ArrayList<TreeNode>(); 
            children.add(node); 
        }else{ 
            children.add(node); 
        } 
            
     }

public String load(ModelMap modelMap){
    List<PubComp> pcList=testCaseDaoImpl.queryPubComp("select p from PubComp p ");   
         modelMap.put("list", pcList); //需要返回的数据(pcList)
        
         List<TreeNode> list = new ArrayList<TreeNode>(); 
         Map map = new HashMap<String, TreeNode>(); 
   
         try { 
   
             //拉出数据库的数据,放入pcList中 
             //将list2中的数据,转换成TreeNode类型,放入Map中备用 
             for (PubComp tDict : pcList) { 
                TreeNode node = new TreeNode(); 
                node.setId(tDict.getAguid()); 
                node.setText(tDict.getAname()); 
                node.setParentId(tDict.getPguid()); 
                map.put(tDict.getAguid(), node); 
   
             } 
             //遍历pcList的数据,把每个节点加入他的父节点的孩子List 
             for (PubComp tDict : pcList) { 
                    if(tDict.getPguid() == null) 
                    { 
                       list.add((TreeNode)map.get(tDict.getAguid())); 
                    }else{ 
   
                       String pidString = tDict.getPguid(); 
                       TreeNode pnode = (TreeNode)map.get(pidString); 
                       TreeNode cnode=(TreeNode)map.get(tDict.getAguid()); 
                       pnode.addChild(cnode); 
                    } 
             }        
            
             //将对象转换成json(注意需要添加gson-2.2.2.jar)
             Gson g = new GsonBuilder().create();
       String json = g.toJson(list,list.getClass());
             System.out.println(json+"-----");
            
            
            
            
         }catch (Exception e) { 
             e.printStackTrace(); 
         }

EasyUI_tree根据数据库数据生成树形结构JSON格式的更多相关文章

  1. Delphi中根据分类数据生成树形结构的最优方法

    一. 引言:    TreeView控件适合于表示具有多层次关系的数据.它以简洁的界面,表现形式清晰.形象,操作简单而深受用户喜爱.而且用它可以实现ListView.ListBox所无法实现的很多功能 ...

  2. Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级

    在平时的开发工作中,经常遇到这样一个场景,在数据库中存储了具有父子关系的数据,需要将这些数据以树形结构的形式在界面上进行展示.本文的目的是提供了一个通用的编程模型,解决将具有父子关系的数据转换成树形结 ...

  3. 树形结构JSON的实现方法

    在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项.目前市场上常见的JavaScript框架及组件库中均包含自己的树 ...

  4. C#生成树形结构泛型类

    C#生成树形结构泛型类,使用方法: ToTree<ShowMessageUpdatesTableTreeViewModel>.ToDo(models) public class ToTre ...

  5. ajax数据请求2(json格式)

    ajax数据请求2(json格式) <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  6. 利用nodejs读取数据库数据生成树结构的json数据

    在做后台管理界面的时候,几乎少不了的一个结构就是树形结构,用来做菜单导航: 那么,最希望的就是树结构的所有数据都是读取的数据库,而不是直接代码当中写死,那我们就一步一步来看: 一,建表 字段通常包括: ...

  7. 数据库索引 引用树形结构 B-数 B+数

    MySQL 为什么使用B+数 B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域. 这就决定了B+树更适合用来存储外部数据,也就是所谓 ...

  8. 递归算法结合数据库 解析 java树形结构

    1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节 ...

  9. jxl读数据库数据生成xls 并下载

    1.所需jar jxl-2.6.10.jar jxls-core-1.0-RC-3.jar jxls-reader-1.0-RC-3.jar 2. excel修改行宽度封装 SheetColumn.j ...

随机推荐

  1. Ref相关的名词解释

    NV (NOT-VOLATILE),即非易失性,断电不会丢失的存储信息,包括生产信息.客户信息.产品信息等等. 它们都保存在不同(FLASH)分区,并根据不同的分区提供不同的接口.数据结构和管理机制. ...

  2. 【英语】Bingo口语笔记(47) - 关于马的表达

    beat a dead horse 浪费口舌

  3. Linux下tail命令

    简述 tail命令从指定点开始将文件写到标准输出,使用tail命令的“-f”选项可以方便的查阅正在改变的日志文件,“tail -f filename”会把filename里最尾部的内容显示在屏幕上,并 ...

  4. Android 从java字节码告诉你 为什么Handler会造成内存泄露

    很多人面试的时候,都知道Handler 极易造成内存泄露,但是有一些讲不出来为什么,好一点的 会告诉你looper msg 之类的,但是你再往下问 为什么msg持有handler handler为什么 ...

  5. openlayers加载地图没有图片时有红叉的解决方法

    解决方式:设置样式隐藏图片 <style type="text/css"> .olImageLoadError { /*ol2.12 onImageLoadError ...

  6. ajax连接池和XMLHttpRequest

    连接池 我们公司在路由和交换机web界面和后端交互全部采用的是自己封装的ajax组件完成的,组件有点老了,代码风格和其中的某些用法现在看起来都有点不习惯.今天把这个组件的核心部分的ajax连接池记录下 ...

  7. 【转】linux dumpe2fs命令

    转自:http://www.shellcn.net/linux_command/linux_dumpe2fs.html 命令名称 dumpe2fs - 显示ext2/ext3/ext4文件系统信息. ...

  8. Oracle中本行记录和上一行记录进行比较lead over 函数处理

    遇到问题:多表关联查询,有一个要求是,同一保单号,对应多个投资产品Code.以及投资比例,每一个保单号有一个总的投资金额.要求同一保单号那一行,只有第一个总金额有值,剩下的code对应的总金额置空. ...

  9. 了解一下jsp

    本着和大家共同学习jsp的原则,今天谈一谈jsp. 首先,JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户 ...

  10. 记录一下ORACLE 10gR2的软件下载地址,备用。

    转载自:http://www.eygle.com/archives/2008/06/10gr2_download_link.html 记录一下ORACLE 10gR2的软件下载地址,备用. 下载OTN ...