@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. erl_0012 timer:tc 测试模块函数调用运行耗时

    timer:tc 可以测试出函数调用耗时,是erlang性能测试的好工具. timer:tc(?MODULE, Fun, [Args]).

  2. Eclipse c++环境搭建 并加载OpenCV库 2015最新

    C++: 搜索 Eclipse c++ 即可 注意新版的mingw安装器,要安装: 1.mingw-developer-toolkit 2.mingw32-base 3.mingw32-gcc-g++ ...

  3. Asp.net 身份验证方式?

    [Forms 身份验证] 通过其可将没有通过身份验证的请求重定向到使用 HTTP 客户端重定向的 HTML 窗体的系统.用户提供凭据并提交该窗体.如果应用程序验证该请求,系统就会发出包含凭据或密钥的 ...

  4. 简单地Android中图片的三级缓存机制

    我们不能每次加载图片的时候都让用户从网络上下载,这样不仅浪费流量又会影响用户体验,所以Android中引入了图片的缓存这一操作机制. 原理: 首先根据图片的网络地址在网络上下载图片,将图片先缓存到内存 ...

  5. [Everyday Mathematics]20150304

    证明: $$\bex \frac{2}{\pi}\int_0^\infty \frac{1-\cos 1\cos \lm-\lm \sin 1\sin \lm}{1-\lm^2}\cos \lm x\ ...

  6. YII Framework学习教程-YII的安全

    web应用的安全问题是很重要的,在“黑客”盛行的年代,你的网站可能明天都遭受着攻击,为了从某种程度上防止被攻击,YII提供了防止攻击的几种解决方案.当然这里讲的安全是片面的,但是值得一看. 官方提供的 ...

  7. Golang官方图片库

    Golang 的图片出来通过提供操作每一个像素点设置颜色(http://www.cnblogs.com/ghj1976/p/3441536.html) 和 提供通过可选蒙版图片重叠操作 (http:/ ...

  8. jQuery需要掌握的技巧

    检查 jQuery 是否加载 在使用 jQuery 进行任何操作之前,你需要先确认它已经加载: if (typeof jQuery == 'undefined') { console.log('jQu ...

  9. N的互质数----欧拉函数

    Description 新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都 ...

  10. Window Redis分布式部署方案 java

    Redis分布式部署方案 Window 1.    基本介绍 首先redis官方是没有提供window下的版本, 是window配合发布的.因现阶段项目需求,所以研究部署的是window版本的,其实都 ...