查询菜单树

public List<Map<String, Object>> queryCategoryInfo() {List<Map<String, Object>> allMenu = queryAllCategory();//根节点List<Map<String, Object>> rootMenu = new ArrayList<Map<String, Object>>();for (Map<String, Object> nav : allMenu) {String parentId = String.valueOf(nav.get("parent_id"));if(parentId.equals("0")){//父节点是0的,为根节点。rootMenu.add(nav);}}/* 根据Menu类的order排序 */
//        Collections.sort(rootMenu, order());//为根菜单设置子菜单,getClild是递归调用的for (Map<String, Object> nav : rootMenu) {/* 获取根节点下的所有子节点 使用getChild方法*/String id = String.valueOf(nav.get("category_id"));List<Map<String, Object>> childList = getChild(id, allMenu);
//          nav.setChildren(childList);//给根节点设置子节点nav.put("child", childList);}return rootMenu;}
/***     获取子节点* @param id 父节点id* @param allMenu 所有菜单列表* @return 每个根节点下,所有子菜单列表*/private List<Map<String, Object>> getChild(String id,List<Map<String, Object>> allMenu){//子菜单List<Map<String, Object>> childList = new ArrayList<Map<String, Object>>();for (Map<String, Object> nav : allMenu) {// 遍历所有节点,将所有菜单的父id与传过来的根节点的id比较//相等说明:为该根节点的子节点。String parentId = String.valueOf(nav.get("parent_id"));if(id.equals(parentId)){childList.add(nav);}}//递归for (Map<String, Object> nav : childList) {String tempId = String.valueOf(nav.get("category_id"));//nav.setChildren(,getChild(tempId, allMenu));nav.put("child", getChild(tempId, allMenu));}//Collections.sort(childList,order());//排序//如果节点下没有子节点,返回一个空List(递归退出)if(childList.size() == 0){return new ArrayList<Map<String, Object>>();}return childList;}

java实现多级菜单(java递归)方法一相关推荐

  1. java实现多级菜单(java递归)方法二

    @Autowiredprivate TreeBuilder treeBuilder; /*** 获取树状结构数据*/@RequestMapping("menu/queryMenuTree&q ...

  2. mysql vue 菜谱_vue+ java 实现多级菜单递归效果

    效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...

  3. java递归实现多级菜单栏_vue+ java 实现多级菜单递归效果

    效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...

  4. Java 实现 多级菜单

    一:前言 最近老师布置了给多级菜单的作业,感觉蛮有意思的,可以提升自己的逻辑!下面我写个简易版的多级菜单,本人还是菜鸟,欢迎各位给予宝贵的建议! 二:正文 由于是给各位演示,所有我把涉及的其他条件全省 ...

  5. java 递归查询多级菜单

    类目表是多级目录表,数据如下: 想获取所有数据的多级目录,代码如下: /*** 获取树形接口的 类目** @return*/@Overridepublic List<ExamCategory&g ...

  6. Java Excel 多级菜单联动原理与实现(可扩展)

    Java Excel级联菜单实现(可扩展) 为什么要写这篇文章呢,因为看到了有人在提问如何用Java做Excel的级联菜单效果.帖子详情:http://spring4all.com/forum-pos ...

  7. java 微信自定义菜单 java微信接口开发 公众平台 SSM

    1.   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限       角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限.       按钮权限: 给角色分配按钮权 ...

  8. java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源

    A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生 ...

  9. Winfrom menuStrip添加多级菜单 及递归

    private void menuStripLoad()         {             ToolStripMenuItem sanji = new ToolStripMenuItem(& ...

最新文章

  1. 1080 Graduate Admission
  2. ner pytorch project code
  3. c语言一段字符加密,请问C语言怎么实现对一长串字符进行MD5加密?
  4. python conn_python中conn是什么
  5. 【视频课】一课掌握模型设计核心理论与实战技巧
  6. 控件 qml_Flat风格的Qml进度条
  7. JavaScript indexOf() 方法 和 lastIndexOf() 方法
  8. C++ 菱形继承 的 对象模型01
  9. 【OS学习笔记】九 实模式:从汇编的角度理解栈结构
  10. 使用for语句打印图形
  11. 微信版花呗“分付”要来了!花呗,白条你们怎么看?
  12. Linux终端输出链接
  13. Objective-c:NSString的常用方法
  14. 计算机软考网络工程师中级多少分过,2019年计算机软考网络工程师中级及格分数...
  15. SqlTransaction作用及如何使用(超详细)
  16. 步进电机控制和步进电机原理
  17. 【开发管理类软件必备知识视频教程之一】登录窗体前台注意事项
  18. 一款兼容Arduino的模拟TDS传感器
  19. UE 在场景或UMG中播放视频
  20. prop与自定义事件

热门文章

  1. 关于Keil-MDK
  2. 170316.道格拉斯-普克算法
  3. solr学习之一 搜索基本知识
  4. PostgreSQL 的 target_list分析(四)
  5. Spring Ioc (Inversion of Control)
  6. 《Linux就该这么学》培训笔记_ch06_存储结构与磁盘划分
  7. hdu 2018多校8
  8. Windows Azure NotificationHub+Firebase Cloud Message 实现消息推动(付源码)
  9. 87-区间线段树(板子)--那个苑区的人最瘦
  10. 看AppStore评价