博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java查询几个菜单下的所有下级菜单
阅读量:6848 次
发布时间:2019-06-26

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

需求:

  假如有几个一级菜单,一级菜单下面有几个二级菜单,二级菜单下又还有三级菜单。现在要求一级菜单里面的几个设置为无效,将不显示在前端。现在需要的是查询出一级菜单下面所有的菜单,包括二级,三级菜单

原则:

  在菜单表中包括自己的id和父节点的parentId

代码:

1 public List getAllMappings(){ 2         //从数据库查出需要设置为无效的一级菜单,每个Map包含id,parentId,name等字段  4         List notActiveMenus = (List)getMenuDao().search();       //初始化存储所有无效的菜单的List 5         List
notActiveIds = new ArrayList
();       //循环每一个一级菜单 6 for (Map notActiveMenu:notActiveMenus){ 7 notActiveIds.add((String)notActiveMenu.get("id"));         //遍历下级目录 8 searchSubNotActiveMenu(notActiveIds, (String) notActiveMenu.get("id")); 9 }       //去重10 List
temp = new ArrayList
();11 Iterator
it = notActiveIds.iterator();12 while(it.hasNext()){13 String tempString = it.next();14 if(temp.contains(tempString)){15 it.remove();16 }else {17 temp.add(tempString);18 }19 }20 27 return notActiveIds;28 }29 30 public void searchSubNotActiveMenu(List
notActiveIds,String parentId){31 //将上级目录的id作为父节点查询child菜单33        List
datas = (List)getMenuDao().search(parentId);34 if (datas!=null&&datas.size()>0){35 for (Map data:datas){36 notActiveIds.add((String)data.get("id"));37 searchSubNotActiveMenu(notActiveIds,(String)data.get("id"));38 }39 }40 }

 

转载于:https://www.cnblogs.com/yzdtofly/p/7246805.html

你可能感兴趣的文章
截图软件
查看>>
关于抽奖概率的问题
查看>>
《鸟哥的私房菜阅读摘要》——linux的简介和计算机基础
查看>>
hql语句的case when then else end问题
查看>>
CF786E ALT
查看>>
引用与指针的区别
查看>>
MongoCola Web化 -- 1. 是不是什么软件都要Web化的讨论 2.新公司,新起点 3.MongoCola 新版本发布...
查看>>
LeetCode (6): ZigZag Conversion
查看>>
HDU 4424 Conquer a New Region 并查集
查看>>
捣乱Linux环境下的C语言
查看>>
13040:All in All
查看>>
华为架构师8年经验谈:从单体架构到微服务的服务化演进之路
查看>>
CGAL进行半边塌缩之前的可塌缩性判断
查看>>
CentOS7安装Zabbix
查看>>
【lca】lca的tarjan写法 poj1330
查看>>
Qt基础1:QString
查看>>
Python第一篇-简介和入门
查看>>
ImageMagick图片服务器
查看>>
Redis多实例配置以及主从同步
查看>>
day5模块学习--hashlib模块
查看>>