java实现多级菜单(java递归)方法一
查询菜单树
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递归)方法一相关推荐
- java实现多级菜单(java递归)方法二
@Autowiredprivate TreeBuilder treeBuilder; /*** 获取树状结构数据*/@RequestMapping("menu/queryMenuTree&q ...
- mysql vue 菜谱_vue+ java 实现多级菜单递归效果
效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...
- java递归实现多级菜单栏_vue+ java 实现多级菜单递归效果
效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...
- Java 实现 多级菜单
一:前言 最近老师布置了给多级菜单的作业,感觉蛮有意思的,可以提升自己的逻辑!下面我写个简易版的多级菜单,本人还是菜鸟,欢迎各位给予宝贵的建议! 二:正文 由于是给各位演示,所有我把涉及的其他条件全省 ...
- java 递归查询多级菜单
类目表是多级目录表,数据如下: 想获取所有数据的多级目录,代码如下: /*** 获取树形接口的 类目** @return*/@Overridepublic List<ExamCategory&g ...
- Java Excel 多级菜单联动原理与实现(可扩展)
Java Excel级联菜单实现(可扩展) 为什么要写这篇文章呢,因为看到了有人在提问如何用Java做Excel的级联菜单效果.帖子详情:http://spring4all.com/forum-pos ...
- java 微信自定义菜单 java微信接口开发 公众平台 SSM
1. 权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限. 按钮权限: 给角色分配按钮权 ...
- java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源
A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生 ...
- Winfrom menuStrip添加多级菜单 及递归
private void menuStripLoad() { ToolStripMenuItem sanji = new ToolStripMenuItem(& ...
最新文章
- 1080 Graduate Admission
- ner pytorch project code
- c语言一段字符加密,请问C语言怎么实现对一长串字符进行MD5加密?
- python conn_python中conn是什么
- 【视频课】一课掌握模型设计核心理论与实战技巧
- 控件 qml_Flat风格的Qml进度条
- JavaScript indexOf() 方法 和 lastIndexOf() 方法
- C++ 菱形继承 的 对象模型01
- 【OS学习笔记】九 实模式:从汇编的角度理解栈结构
- 使用for语句打印图形
- 微信版花呗“分付”要来了!花呗,白条你们怎么看?
- Linux终端输出链接
- Objective-c:NSString的常用方法
- 计算机软考网络工程师中级多少分过,2019年计算机软考网络工程师中级及格分数...
- SqlTransaction作用及如何使用(超详细)
- 步进电机控制和步进电机原理
- 【开发管理类软件必备知识视频教程之一】登录窗体前台注意事项
- 一款兼容Arduino的模拟TDS传感器
- UE 在场景或UMG中播放视频
- prop与自定义事件