作家
登录

基于jsTree的无限级树JSON数据的转换代码

作者: 来源:www.28hudong.com 2013-03-30 01:24:57 阅读 我要评论

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是菜单类或权限类等的实体。 效果图:

  推荐阅读

  jquery下利用jsonp跨域访问实现方法

复制代码 代码如下: $.ajax({ async:false, url: '', // 跨域URL type: 'GET', dataType: 'jsonp', jsonp: 'jsoncallback', //默认callback data: mydata, //请求数据 timeout: 5000, beforeSend: function(){ //j>>>详细阅读


本文标题:基于jsTree的无限级树JSON数据的转换代码

地址:http://www.17bianji.com/kaifa2/JS/25947.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)