宝哥软件园

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

编辑:宝哥软件园 来源:互联网 时间:2021-11-24

jstree主页: http://www.jstree.com/其中提供了一种从后台取数据渲染成树的形式:复制代码代码如下:美元(' #mytree ').tree({ data : { type : 'json ',url : '${ctx}/user/power!名单。do ' } });对于全球资源定位器(统一资源定位符)中返回的值必须是它定义的json数据形式: 复制代码代码如下:美元(' #demo2 ').树({ data : { type : 'json ',JSON :[{ attributes : { id : ' pjson _ 1 ' },state: 'open ',data : '根节点1 ',子项:[{属性: { id : ' pjson _ 2 ' },数据: {标题: '自定义图标',图标: './media/images/ok.png' } },属性: { id : ' pjson _ 3 ' },数据: '子节点2' },属性: { id : ' pjson _ 4 ' },数据: '某些其他子节点} ]},属性: { id : ' pjson _ 5 ' },数据: ' Root node ' } });这里需要一个从后台实例集合转换为它规定的json数据的形式。复制代码代码如下: /** *//** * 无限递归获得jsTree的json字串* * @param parentId *父权限id * @ return */private String getJson(long parentId){//把顶层的查出来列出动作动作=动作管理器。query byparentid(ParentId);for(int I=0;一、行动。size();I){动作a=动作。得到(我);//有子节点if(a . GetShaSchild()==1){ str=' { attributes : { id : ' ' a . GetAnDi()' ' },state: ' open ',data : ' ' a . GetAnDi()' ',';str=' children :[';//查出它的子节点列表动作列表=动作管理器。query byparent id(a . GetAnDi());//遍历它的子节点for(int j=0;j列表。size();j){动作AC=列表。get(j);//还有子节点(递归调用)if(AC。getisaschild()==1){ this。getjson(AC。getparent id());} else { str=' { attributes : { id : ' ' AC。GetAnDi()' ' },state: ' open ',data : ' ' AC。getananame()' ' ' } ';if (j list.size() - 1) { str=',';} } } str=']';str=" }if (i actions.size() - 1) { str=',';} } }返回字符串;} 调用: 复制代码代码如下: @ org。阿帕奇。支柱2。conventi on。注释。操作(结果={ @结果(名称='成功',位置='/主/用户/操作-列表。JSP ')})公共字符串列表(){ String str='[';//从根开始str=这个。getjson(0);str=']';这个。render JSON(str);返回null}其中行动是菜单类或权限类等的实体。效果图:

更多资讯
游戏推荐
更多+