文档章节

用递归方式实现带层级表数据的无线级联树形显示,并转换成JsonArray返回前端

最深的夜
 最深的夜
发布于 2016/06/02 17:43
字数 236
阅读 110
收藏 5
private int iLength=0;
	/**
	 * 用递归方式实现无限级联
	 * @return 
	 * 
	 *   |第一层
	 *   |—第二层
	 *   |—|—第三层
	 */
public JSONArray getAll() {
		LinkedHashMap<String, String> mapDepart = new LinkedHashMap<String, String>();
		LinkedHashMap<String, String> departList = getNode("0010aae53b864f7ca440811a37716cc6",mapDepart);
		
		//将linkedHashMap转化为json对象
		JSONArray jsonArray = new JSONArray();
		for (String key : departList.keySet()) {
			JSONObject json = new JSONObject();
			json.put("ids", key);
			json.put("departName", departList.get(key));
			jsonArray.add(json);
		}
		//返回jsonarray
		return jsonArray;
	}
	//按照层数生成"|—"
private String genHeng(int iLength){
		String sHeng = "";
		for (int i = 0; i < iLength; i++) {
			sHeng+="|—";
		}
		return sHeng;
	}
	//利用递归生成无限级联的树形结构
private LinkedHashMap<String, String> getNode(String parentIds,LinkedHashMap<String, String> mapDepart){
		Depart depart = Depart.dao.findById(parentIds);
		mapDepart.put(depart.getIds(), genHeng(iLength)+depart.getDepartName());
		List<Record> listDepart = Db.find("Select * from depart where pDepartIds=?",parentIds);
		//有父节点为parentIds的子节点
		for (Record record : listDepart) {
			iLength++;
			mapDepart.put(record.getStr(Depart.column_ids), genHeng(iLength)+record.getStr(Depart.column_departName));
			getNode(record.getStr(Depart.column_ids), mapDepart);
			iLength--;
		}
		return mapDepart;
		
	}

数据表depart结构是 ids,departName,pDepartIds

© 著作权归作者所有

最深的夜
粉丝 0
博文 5
码字总数 3363
作品 0
潍坊
程序员
私信 提问
Java将一个List 转成树形结构

Java将一个List 转成树形结构。 背景是有一张表,有层级结构。在前端要以树形结构展示。如果递归查询数据库,开销太大。所以考虑一次把所有数据查出来,然后用Java转化成树形结构。大家有没有...

士别三日
2016/11/21
3.8K
9
功能表单之树形选择字段类型的高级使用——JEPLUS软件快速开发平台

JEPLUS功能表单之树形选择字段类型的高级使用 JEPLUS功能表单中树形选择字段类型的目标字段在开发过程中还有一些高级配置和高级应用,如果知晓怎么配置也许能解决我们系统开发过程的大问题,...

JEPLUS
2018/06/13
0
0
MySQL下实现树形组织机构图的一种方案【实际项目中已应用】

需求说明 前端树形组织机构图示意图 需求说明 前端要求画一个树形组织机构图,具体要求: 前端向后端传递参数为【登录用户所在组织机构id】,要求后端返回json数据,前端解析数据画出树形组织...

karma123
2018/10/24
0
0
实现一个可无限折叠的table

前言 如何在table上实现一个可折叠展开子节点的table?先看下最终实现效果图: 其实这个项目在两个月以前就以上上传在github了,但当时没有写详细的实现过程。自己前几天发表的一篇技术贴当下...

no-simple
2018/11/11
0
0
Android 打造任意层级树形控件 考验你的数据结构和设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lmj623565791/article/details/40212367 转载请标明出处:http://blog.csdn.net/lmj623565791/article/detai...

鸿洋_
2014/10/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机网络

计算机网络体系结构 OSI 其中表示层和会话层用途如下: 表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。 会话层 :建立及管理会话。 五层...

一只小青蛙
59分钟前
2
0
0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
2
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部