jstree 主页 :
http://www.jstree.com/

其中提供了一种从后台取数据渲染成树的形式:

 $("#mytree").tree({data  : {type  : "json",url : "${ctx}/user/power!list.do"}
});

对于url中返回的值必须是它定义的json数据形式:

$("#demo2").tree({data  : {type  : "json",json  : [ { attributes: { id : "pjson_1" }, state: "open", data: "Root node 1", children : [{ attributes: { id : "pjson_2" }, data: { title : "Custom icon", icon : "../media/images/ok.png" } },{ attributes: { id : "pjson_3" }, data: "Child node 2" },{ attributes: { id : "pjson_4" }, data: "Some other child node" }]}, { attributes: { id : "pjson_5" }, data: "Root node 2" } ]}
});

这里需要一个从后台实例集合转换为它规定的json数据的形式.

/*** 无限递归获得jsTree的json字串* * @param parentId*            父权限id* @return*/private String getJson(long parentId){// 把顶层的查出来List<Action> actions = actionManager.queryByParentId(parentId);for (int i = 0; i < actions.size(); i++){Action a = actions.get(i);// 有子节点if (a.getIshaschild() == 1){str += "{attributes:{id:\"" + a.getAnid()+ "\"},state:\"open\",data:\"" + a.getAnname() + "\" ,";str += "children:[";// 查出它的子节点List<Action> list = actionManager.queryByParentId(a.getAnid());// 遍历它的子节点for (int j = 0; j < list.size(); j++){Action ac = list.get(j);//还有子节点(递归调用)if (ac.getIshaschild() == 1){this.getJson(ac.getParentid());}else{str += "{attributes:{id:\"" + ac.getAnid()+ "\"},state:\"open\",data:\"" + ac.getAnname()+ "\" " + "   }";if (j < list.size() - 1){str += ",";}}}str += "]";str += "   }";if (i < actions.size() - 1){str += ",";}}}return str;}

调用:

@org.apache.struts2.convention.annotation.Action(results ={ @Result(name = "success", location = "/main/user/action-list.jsp") })public String list(){String str = "[";// 从根开始str += this.getJson(0);str += "]";this.renderJson(str);return null;}

其中Action是菜单类或权限类等的实体。
效果图:

基于jsTree的无限级树JSON数据的转换相关推荐

  1. java集合转js数值,基于jsTree的无限级树JSON数据的转换

    评论 # re: 基于jsTree的无限级树JSON数据的转换  回复  更多评论 exttree最好了!配合dwr ok 2009-05-05 22:50 | 大罗卜 # re: 基于jsTree的 ...

  2. 数据结构“基于哈夫曼树的数据压缩算法”的实验报告

    一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com Last edited: 2022.11.20 目录 数据结构& ...

  3. BJFU_数据结构习题_262基于哈夫曼树的数据压缩算法

    欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 262基于哈夫曼树的数据压缩算法 描述 输入一串字符串,根据给定的字符串中字符出现的频率建立相应哈夫曼树,构造哈夫曼编码表, ...

  4. 基于哈夫曼树的数据压缩算法

    计算机科学与技术系 实 验 报 告 专业名称 计算机科学与技术 课程名称 数据结构与算法 班 级 17计科2班 综合实验2 基于哈夫曼树的数据压缩算法 实验日期 2019.04.29 综合实验二 基于 ...

  5. 数据结构 基于哈夫曼树的数据压缩算法

    数据结构 基于哈夫曼树的数据压缩算法 实验目的 实验内容 实验提示 实验代码 实验小结 实验目的 1.掌握哈夫曼树的构造算法. 2.掌握哈夫曼编码的构造算法. 实验内容 问题描述 输入一串字符串,根据 ...

  6. JAVA对象JSON数据互相转换的四种常见情况

    这篇文章主要介绍了JAVA对象JSON数据互相转换的四种常见情况,需要的朋友可以参考下 1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码代码如下:     JSONArray ...

  7. python json数据的转换

    1  Python数据转json字符串 import json json_str = json.dumps(py_data) 参数解析: json_str = json.dumps(py_data,s ...

  8. SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换)

    Spring3.1开始使用新的HandlerMapping 和 HandlerAdapter 来支持@Contoller 和@RequestMapping注解处理:处理器映射RequestMappin ...

  9. 把数据对象转成字符串_Android Json数据的转换

    按目前来说,大多数前端和后台的交互数据的格式,基本都是以json格式为主,json数据已经是变得很常见了.为了能够更加方便的处理json数据,我自己封装了一个工具类,使得能够更加方便快捷的去处理jso ...

最新文章

  1. 统一沟通成本节约数据表
  2. Spring源码由浅入深系列一 简介
  3. vue-cli 3.0安装和使用
  4. vue 地图使用navigator_weex踩坑之旅第五弹 ~ 使用navigator内置模块实现导航
  5. 后端的日期类型赋值前端表单_后端获取前端数据的四种方式
  6. 凸优化第七章统计估计 7.5实验设计
  7. vue 创建项目之vue init webpack xxx
  8. 淘宝打单发货API,淘宝打单发货接口
  9. JavaScript-单例模式
  10. Unity性能优化之图形渲染(渲染性能的加强)
  11. EnterpriseArchitect画图工具-活动图使用(一)
  12. 如何剔除数组中得空字符串 null undefined
  13. Micro-personnel部署
  14. 2019年上半年全国计算机二级(等级)考试报名网址
  15. 语言模型训练工具SRILM
  16. 不成熟的梦想家 (未熟DREAMER)
  17. 如何理解数据科学的中的数据泄露(Data Leakage)
  18. 篇章分析的理论和应用
  19. proxy如何解决需要用户名密码
  20. 怎么设置代理IP?代理IP怎么使用?

热门文章

  1. ecshop 支持 php,ecshop支持PHP7的修改方法
  2. 做任务云闪付为什么要实名认证_ISO9001质量体系认证:为什么要做?如何去做?...
  3. java 字符串索引从0开始_无限字符串中的字符串的第一个索引-Java
  4. 有关单元测试的 5 个建议
  5. 计算机动画专业哪个大学排名,哪些大学院校数字媒体艺术、动画专业比较排名...
  6. 接口测试——测试用例执行
  7. 人脸检测之Haar分类器方法
  8. ❤️程序员国企太安逸想辞职,又嫌私企大厂压力大996我该如何选择?(高级全栈自动化之路)
  9. ie内核的css居中,在IE中居中的css问题
  10. 海岸鸿蒙高锰酸盐指数浓度,水中高锰酸盐指数的检测步骤