用递归方式实现带层级表数据的无线级联树形显示,并转换成JsonArray返回前端
2016-06-02 17:43
856 查看
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
相关文章推荐
- Extjs 将表格中的行上下移动,把一个表格中的数据移动到另一个表格中
- Javascript实现时钟
- javaScript事件捕获和冒泡
- JavaScript模板引擎实例应用(转)
- MySQL · 性能优化· InnoDB buffer pool flush策略漫谈
- javascript实现汉诺塔动画效果
- ExtJs6 form回显combo下拉框的值方法
- javascript各种模式解析
- <Js>节点
- Jquery Pagination Ajax分页插件
- 格式化代码引发的css编译失败
- ExtDeprecationWarning: Importing flask.ext.bootstrap is deprecated, use flask_bootstrap instead.
- 05-树8 File Transfer
- Sublime Text3技巧之内部运行Node.js
- SQL SERVER 2005删除维护作业报错:The DELETE statement conflicted with the REFERENCE constraint "FK_subplan_job_id"
- [置顶] input file上传图片预览(查看图片大小,类型,名字)------------------------------自己动手写jQuery插件
- codeforces 677A Vanya and Fence(水题)
- 2015腾讯web前端笔试题
- js用 window.location.href跳转IE和chrome中路径url不一致问题
- jQuery中的DOM操作学习笔记