博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
easyUI数据转换为不同级别的数据
阅读量:4346 次
发布时间:2019-06-07

本文共 2114 字,大约阅读时间需要 7 分钟。

将同级别的数据转化为不同树级别的easyUI数据 1. serviceimp层业务的实现 2.controller控制转换 3.jsp通过json接收

1 serviceimp层业务的实现
@Override
public List<TreeNode> getTreeNodesFromMenuList (List<TPermission> menus) {
List<TPermission> menuOne = new ArrayList<TPermission>();
//处理一级菜单
for (TPermission tp : menus) {
if (tp.getPid() == 0) {
menuOne.add(tp);
}
}
//处理二级菜单
for (TPermission tp : menus) {
int pid = tp.getPid();
TPermission tpp = null;
if (pid != 0) {
for (TPermission tp1 : menuOne) {
if (tp1.getId() == pid) {
tpp = tp1;
break;
}
}
tpp.getChildren().add(tp);
}
}
Collections.sort(menuOne);
for (TPermission tp : menuOne) {
Collections.sort(tp.getChildren());
}
List<TreeNode> treeNodes = transfer(menuOne);
return treeNodes;
}
private List<TreeNode> transfer(List<TPermission> tp) {
List<TreeNode> treeNodes = new ArrayList<TreeNode>();
TreeNode tn = null;
for (TPermission tp1 : tp) {
tn = new TreeNode();
tn.setId(tp1.getId());
tn.setText(tp1.getName());
tn.getAttributes().put("url", tp1.getUrl());
if (tp1.getChildren().size() != 0) {
tn.setState("closed");
tn.setChildren(transfer(tp1.getChildren()));
} else {
tn.setState("open");
}
treeNodes.add(tn);
}
return treeNodes;
}

}

2 controller层控制转换和与jsp交互

@RequestMapping(value = "getMenu", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public List<TreeNode> getUserMenu() {
List<TreeNode> treeNodes = null;
// 获取到当前主体
Subject subject = SecurityUtils.getSubject();
// 由当前主体获取到其首要身份信息
SysUser user = (SysUser) subject.getPrincipals().getPrimaryPrincipal();
// 获取该用户的菜单
List<TPermission> menuList = user.getMenus();
// 将Tpermission的集合转换为TreeNode的集合,返回
treeNodes = menuService.getTreeNodesFromMenuList(menuList);
return treeNodes;
}

 

3 .前段接收时json

<script>
$(function(){
//当页面加载完毕之后,初始化树
$('#myTree').tree({
url:'<%=basePath%>getMenu.do',
onClick:function(node){
alert(node.attributes.url);
if ($('#myTree').tree('isLeaf',node.target)) {
$("#myTabs").tabs('add',{
title:node.text,
href:"<%=basePath%>" + node.attributes.url,
closable:true,
iconCls:'icon-ok'
});
}/* else {
alert("父节点:" + node.text);
} */
}
});
});
</script>

转载于:https://www.cnblogs.com/lgf428/p/6078256.html

你可能感兴趣的文章
unity中利用layer的方式来获取指定层级上的对象,例如UI层的某个对象
查看>>
解决SVN提交代码时的错误:“Could not execute PROPPATCH”
查看>>
JAVA国际化
查看>>
[洛谷P1850]换教室 概率与期望
查看>>
【读书笔记】算法神探
查看>>
8 种百度云高速下载,你值得拥有
查看>>
python爬虫之初始Selenium
查看>>
建造者模式(Builder)
查看>>
javascript实现的可改变滚动方向的无缝滚动
查看>>
职场人伤害了“上司” 怎样弥补
查看>>
int[]数组指定位置添加元素
查看>>
(转)关于ColumnCount与GetItemsCount方法
查看>>
Centos 配置eth0 提示Device does not seem to be present
查看>>
谷歌扩展程序--------------Message
查看>>
IOS_协议与委托
查看>>
男人保持活力25条
查看>>
IOS后台运行浅析
查看>>
更换临时表空间TEMP
查看>>
ios html5 长按复制文本
查看>>
一个真实的社会
查看>>