EasyUI_tree根据数据库数据生成树形结构JSON格式
@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格式的更多相关文章
- Delphi中根据分类数据生成树形结构的最优方法
一. 引言: TreeView控件适合于表示具有多层次关系的数据.它以简洁的界面,表现形式清晰.形象,操作简单而深受用户喜爱.而且用它可以实现ListView.ListBox所无法实现的很多功能 ...
- Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级
在平时的开发工作中,经常遇到这样一个场景,在数据库中存储了具有父子关系的数据,需要将这些数据以树形结构的形式在界面上进行展示.本文的目的是提供了一个通用的编程模型,解决将具有父子关系的数据转换成树形结 ...
- 树形结构JSON的实现方法
在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项.目前市场上常见的JavaScript框架及组件库中均包含自己的树 ...
- C#生成树形结构泛型类
C#生成树形结构泛型类,使用方法: ToTree<ShowMessageUpdatesTableTreeViewModel>.ToDo(models) public class ToTre ...
- ajax数据请求2(json格式)
ajax数据请求2(json格式) <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- 利用nodejs读取数据库数据生成树结构的json数据
在做后台管理界面的时候,几乎少不了的一个结构就是树形结构,用来做菜单导航: 那么,最希望的就是树结构的所有数据都是读取的数据库,而不是直接代码当中写死,那我们就一步一步来看: 一,建表 字段通常包括: ...
- 数据库索引 引用树形结构 B-数 B+数
MySQL 为什么使用B+数 B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域. 这就决定了B+树更适合用来存储外部数据,也就是所谓 ...
- 递归算法结合数据库 解析 java树形结构
1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节 ...
- 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 ...
随机推荐
- BZOJ 1176 MOKIA
cdq分治. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...
- 添加第三方类库造成的linker command failed with exit code 1 (use -v to see invocation)的错误调试
linker command failed with exit code 1 (use -v to see invocation)这个错误貌似遇见并不止一次,当我想用某个第三方类库的时候(如SBJso ...
- yaf框架流程四
在前面的章节,在bootstrap里添加了一个benchmark插件,简单介绍下yaf的插件机制:http://yaf.laruence.com/manual/yaf.plugin.html Yaf定 ...
- equal 和 ==
刚才看了一下别人的博客,想加深一下对 equal 和 == 的了解. 总结了几点: 1.equal 每个类都有必要覆盖一下,对于String 类,已经覆盖,比较的是String对象的字符序列是否相等. ...
- Swift语法
Swift语法 标签(空格分隔): Swift 1.打印输出语句 println("Hello, Swift!") 注意每行代码后面无需添加分号作为结束 2.简单值 let---常 ...
- ArcEngine9.3报错Create output feature class failed
ArcEngine9.3执行IFeatureDataConverter.ConvertFeatureClass Method出错如下错误信息: Create output feature class ...
- delphi中通过CreateOleObject操控Word
http://blog.csdn.net/csm2432/article/details/7692443
- HDU5806 NanoApe Loves Sequence Ⅱ (BestCoder Round #86 C)二分
分析:大于等于m的变成1,否则变成0,预处理前缀和,枚举起点,找到第一个点前缀和大于m即可 找第一个点可以二分可以尺取 #include <cstdio> #include <cst ...
- Http中Cookie和Session介绍
先介绍下B/S系统的工作的完整过程.首先客户端的浏览器发出请求,服务端的webserver接受到请求后,调用相关请求的页面进行处理,处理完后将结果发送给客户端的浏览器进行显示.只能是浏览器向webse ...
- 在Mac OS X 通过抓包、“第三方下载工具”加速下载、安装APP或系统
#!/bin/bash ######################################################################################## ...