ztree 树形菜单结构转JSON
以layui侧边栏菜单为例,实现java以json形式返回给前端侧边栏菜单
前端很常见的侧边栏菜单展示,但是前端有些控件的格式有自己的风格,只要返回标准json就可以进行转换
从数据库结构开始
常用pid=o或者=null的时候为一级菜单,pid=id的为二级菜单
初步逻辑是
// 采用递归算法实现许可数据查询
* 1) 方法自己调用自己* 2) 方法一定要有跳出的逻辑* 3) 方法在调用自身时,传递的参数需要有规律
递归算法所体现的“重复”一般有三个要求
(1) 每次调用在规模上都有所缩小(通常是减半);(2) 相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入);(3) 在问题的规模极小时必须用直接给出解答而不再进行递归调用,因而每次递归调用都是有条件的(以规模未达到直接解答的大小为条件),无条件递归调用将会成为死循环而不能正常结束。
方法一:
// 读取许可数据
//全部数据
List<Permission> roots = permissionService.queryRootPermission();for ( Permission root : roots ) {// 查询子节点List<Permission> childPermissions = permissionService.queryChildPermissions(root.getId());// 查询子节点的子节点for ( Permission child : childPermissions ) {List<Permission> childChildPermissions = permissionService.queryChildPermissions(child.getId());child.setChildren(childChildPermissions);}// 组合父子节点的关系root.setChildren(childPermissions);}
方法二
Map<Integer, Permission> permissionMap = new HashMap<Integer, Permission>();for ( Permission permission : permissions ) {permissionMap.put(permission.getId(), permission);}for ( Permission permission : permissions ) {// 子节点Permission child = permission;if ( child.getPid() == 0 ) {roots.add(permission);} else {// 父节点Permission parent = permissionMap.get(child.getPid());// 组合父子节点的关系parent.getChildren().add(child);}}
对于前端特殊格式的json,可以根据需求进行json格式的重组
方法三:
ztree 树形菜单结构转JSON相关推荐
- ztree树形菜单demo
阅读目录 zTree树形菜单 回到顶部 zTree树形菜单 树形菜单使用方式如下: HTML引入的方式如下: <!DOCTYPE html><html><head> ...
- zTree树形菜单交互选项卡效果实现
1. 添加自定义属性 page 2. 为 ztree 每个树形节点,添加点击事件 <!DOCTYPE html> <html><head><meta char ...
- zTree树形菜单使用实例
在每个节点添加 id 和 pid, id 表示当前节点编号,pid 表示父节点编号 第一步:在页面显示菜单位置,添加 ul设置 class="ztree" 第二步:开启简单数据格式 ...
- 使用ztree展示树形菜单结构
官网:http://www.treejs.cn/v3/main.php#_zTreeInfo 一.功能简介 在权限系统中,实现给角色指定菜单权限的功能.主要包括以下几点: 读取全部菜单项,并以树形结构 ...
- ztree和php结合实例,实例详解jQuery EasyUI结合zTree树形结构制作web页面
JQuery EasyUI 结合 zTree树形结构制作web页面.easyui用起来比较简单,很好的封装了jquery的部分功能,使用起来更加方便,但是从1.2.3版本以后,商业用途是需要付费的,z ...
- MVC +easyui +json 前后端交互动态生成树形菜单
效果图: 1.view端代码实现,引入jquery.easyui 的js文件,创建树形菜单标签<ul>,如下所示: @{ViewBag.Title = "Home Page&qu ...
- SpringMVC+ZTree实现树形菜单权限配置
计划在开源项目里加入权限配置的功能,打算加入zTree实现树形结构. Team的Github开源项目链接:https://github.com/u014427391/jeeplatform 欢迎sta ...
- 众筹网站项目第七天之zTree树形结构实现(2)
打开原教程视频 注:本人是渣渣,有错请谅解. 许可维护页面的zTree树形结构实现 实现效果: 实现过程 1.数据准备 在数据库中插入相应的数据 insert into `t_permission` ...
- Struts2+Hibernate+Spring+ZTree+Dtree 实现树形菜单
2019独角兽企业重金招聘Python工程师标准>>> 1.第一步配置web.xml <?xml version="1.0" encoding=" ...
最新文章
- Cargo 教程介绍
- Apache多站点设定
- 关于linux文件挂载(一)
- Transductive和Inductive
- MBR的Linux分区机制启动过程,linux系统启动流程(MBR)
- 【DP】【期望】$P1850$换教室
- C#算法设计排序篇之01-冒泡排序(附带动画演示程序)
- 像目标主机一样的tcp流重组
- Raspbian 2019-06-20 发布
- PyTorch1.4安装-进入官网安装时最靠谱的
- Beego使用AdminLTE
- SIM800(GPRS)拨号上网失败未能连接服务器
- mac 如何安装 wget
- 背单词App开发日记0
- 彻底解决IE9 文本框无法输入文字,IE窗口闪烁问题(亲测)
- 一秒知道光纤、光缆、跳线、尾纤、连接器类型
- acm竞赛java很少,Java多线程在ACM竞赛中的应用
- 专业编写c语言的软件,适合编写C语言代码的几款软件
- 乐固加固后windows下实现给apk签名
- 雷风恒:慎终如始;天山遁:大雁南飞