以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相关推荐

  1. ztree树形菜单demo

    阅读目录 zTree树形菜单 回到顶部 zTree树形菜单 树形菜单使用方式如下: HTML引入的方式如下: <!DOCTYPE html><html><head> ...

  2. zTree树形菜单交互选项卡效果实现

    1. 添加自定义属性 page 2. 为 ztree 每个树形节点,添加点击事件 <!DOCTYPE html> <html><head><meta char ...

  3. zTree树形菜单使用实例

    在每个节点添加 id 和 pid, id 表示当前节点编号,pid 表示父节点编号 第一步:在页面显示菜单位置,添加 ul设置 class="ztree" 第二步:开启简单数据格式 ...

  4. 使用ztree展示树形菜单结构

    官网:http://www.treejs.cn/v3/main.php#_zTreeInfo 一.功能简介 在权限系统中,实现给角色指定菜单权限的功能.主要包括以下几点: 读取全部菜单项,并以树形结构 ...

  5. ztree和php结合实例,实例详解jQuery EasyUI结合zTree树形结构制作web页面

    JQuery EasyUI 结合 zTree树形结构制作web页面.easyui用起来比较简单,很好的封装了jquery的部分功能,使用起来更加方便,但是从1.2.3版本以后,商业用途是需要付费的,z ...

  6. MVC +easyui +json 前后端交互动态生成树形菜单

    效果图: 1.view端代码实现,引入jquery.easyui 的js文件,创建树形菜单标签<ul>,如下所示: @{ViewBag.Title = "Home Page&qu ...

  7. SpringMVC+ZTree实现树形菜单权限配置

    计划在开源项目里加入权限配置的功能,打算加入zTree实现树形结构. Team的Github开源项目链接:https://github.com/u014427391/jeeplatform 欢迎sta ...

  8. 众筹网站项目第七天之zTree树形结构实现(2)

    打开原教程视频 注:本人是渣渣,有错请谅解. 许可维护页面的zTree树形结构实现 实现效果: 实现过程 1.数据准备 在数据库中插入相应的数据 insert into `t_permission` ...

  9. Struts2+Hibernate+Spring+ZTree+Dtree 实现树形菜单

    2019独角兽企业重金招聘Python工程师标准>>> 1.第一步配置web.xml <?xml version="1.0" encoding=" ...

最新文章

  1. Cargo 教程介绍
  2. Apache多站点设定
  3. 关于linux文件挂载(一)
  4. Transductive和Inductive
  5. MBR的Linux分区机制启动过程,linux系统启动流程(MBR)
  6. 【DP】【期望】$P1850$换教室
  7. C#算法设计排序篇之01-冒泡排序(附带动画演示程序)
  8. 像目标主机一样的tcp流重组
  9. Raspbian 2019-06-20 发布
  10. PyTorch1.4安装-进入官网安装时最靠谱的
  11. Beego使用AdminLTE
  12. SIM800(GPRS)拨号上网失败未能连接服务器
  13. mac 如何安装 wget
  14. 背单词App开发日记0
  15. 彻底解决IE9 文本框无法输入文字,IE窗口闪烁问题(亲测)
  16. 一秒知道光纤、光缆、跳线、尾纤、连接器类型
  17. acm竞赛java很少,Java多线程在ACM竞赛中的应用
  18. 专业编写c语言的软件,适合编写C语言代码的几款软件
  19. 乐固加固后windows下实现给apk签名
  20. 雷风恒:慎终如始;天山遁:大雁南飞

热门文章

  1. java自习_java自习重点及自测
  2. 74LSxx versus. 74HCxx
  3. 7、8系升9系视频教程
  4. 基于线性回归的股票预测案例
  5. 3、按键扫描检测处理
  6. python print怎么用_Python学习路线分享Beeprint怎么用
  7. 微信小程序:去水印工具微信小程序源码
  8. WordPress博客系统搜索引擎优化seo全攻略-新华站长网
  9. vue请求拦截 给所有的api接口的请求 params 带上一个存储的值及qs的安装
  10. 怎样免费将多个pdf文件合并为一个