最靠谱的java递归树形菜单显示

今天写权限整好涉及到一些菜单的显示,最先想到的是递归遍历输出,但是呢在网上找了很多有关的资料没有符合自己需求的所以就自己写了一个,如果觉得靠谱

请点点关注!!!赞一个

首先看一些设计的数据库设计

菜单的id menuId

菜单的名称 menuName

菜单的地址 url

菜单的父级别 parent

菜单的编码 menuCode

比较简单的设计:

闲话不多说直接上代码

实体类 如下:

此处省略 GET ()SET()方法

注意:

这里多了个 childrs集合 因为我们要进行递归遍历 把每个菜单的子元素都显示出来  根据自己的需求选好集合我用的是List如果你希望唯一就用set集合

这里采用List

接下来我们来看递归部分如下:

简单的几行代码就完成的递归的遍历所有菜单的 每个菜单又会携带自己的子子孙孙菜单的 这样的结果是你想到要的么????

接下来我们来解释一下这些代码的意义

menuMapper.conditionleveMenu(menu.getMenuId());

第一次进来,获取的是当前的一级元素

然后把一级元素放入我当前菜单的子元素中

因为:我的子元素的下面很有可能还有子元素 所以我又把上面的集合元素循环的进行的遍历

for(Menu men : list){

然后这里采用的是递归的算法 recursion(menu)传入当前的菜单

}

这个方法主要做了几件事

1查询当前菜单下面的所有子元素菜单

2如果有子元素菜单 添加到当前菜单的子元素集合中

添加完毕 我们要考虑的是万一子元素集合下面还有菜单元素怎么办

所以进行了遍历

3循环遍历子元素集合进行重复操作 放入菜单 然后进入方法

1查询当前菜单下面的所有子元素

2如果有子元素菜单 添加到当期那菜单的子元素集合中

3循环遍历子元素集合进行进行重复操作.......同上

直到循环完毕

主要代码 就是这些  最重要的是实现了这个功能  细节留给你们开阔大脑去想把!!嘿嘿 关于本文有什么问题可以在下面留言交流,如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我,博客一直在更新,欢迎 关注

原文地址:https://www.cnblogs.com/langjunnan/p/8419272.html

时间: 2024-11-13 11:06:47

最靠谱的java递归树形菜单显示的相关文章

Java构建树形菜单

构建树形菜单 效果图:支持多级菜单. 菜单实体类: public class Menu { // 菜单id private String id; // 菜单名称 private String name; // 父菜单id private String parentId; // 菜单url private String url; // 菜单图标 private String icon; // 菜单顺序 private int order; // 子菜单 private List<Menu> ch

关于java 展示树形菜单Tree的一些备忘信息。[bootstrap tree]

最近在项目中,需要迭代,显示树形菜单,这里我们使用的是bootstracp,所以使用的是bootstracp多级列表树, 使用的时候,非常简单,只需 <!-- Required Stylesheets --> <link href="./css/bootstrap.css" rel="stylesheet"> <!-- Required Javascript --> <script src="./js/jquery

用dtree实现树形菜单 dtree使用说明

http://www.jb51.net/article/28566.htm 准备工作: 请从脚本之家http://www.jb51.net/jiaoben/31974.html下载dtree.zip文件 dtree.zip压缩包介绍: dtree是一个由JavaScript编写成的简单的树形菜单组件,目前免费并且开源. 目前有很多的树形菜单组件(比如ext),dtree是一种简单易懂的js组件, 不需要复杂的操作即可生产,同时支持动态从数据库引入数据 解压后有以下几部分: img文件夹: 包含树

Java之File类及递归树形展示目录_20150804

Java之File类及递归树形展示目录 20150804 下面的构造函数可以用来生成File 对象: File(String directoryPath)          File(String directoryPath, String filename)          File(File dirObj, String filename) 这里,directoryPath是文件的路径名,filename 是文件名,dirObj 一个指定目录的File 对象.下面的例子创建了三个文件:f1

动态树形菜单的几种递归写法小结

VUE中递归算法实现树形菜单的写法: <template> <div> <!-- 父组件将数据传入子组件 --> <tree :msg='msg' /> </div> </template> <script> export default { data (){ //模拟数据 return{ n:0, msg: [{name:'北京', sub:[{name:'东城区', sub:[ {name:'朝阳区'} ] },{na

生成树形菜单

题记------学习别人的精髓,并加以总结,消化吸收,这就是提高!!! 动态生成树形菜单,前台用easyui实现,非常简单不赘述,主要给出后台java的逻辑代码 1 package com.gongli.util.entity.treeMenu; 2 3 4 5 /* 6 * 用于封装树形菜单,无具体表与之对应,根节点为-1,节点0,然后父节点0,节点001,父节点001,节点001001,001002,001...依次类推 7 */ 8 public class TreeMenu { 9 pr

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

获取[下载地址]   QQ: 313596790官网 http://www.fhadmin.org/A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都

WEB开发中前后台树形菜单的展示设计

在WEB开发中经常需要进行树形菜单的展示,本例通过不同角度的总结了如下三种实现方式: 通过JS的递归实现前端菜单DOM的动态创建 通过JSP的include指令结合JSTL表达式语言递归实现菜单的展示 通过扩展JSP的标签在后端实现菜单的DOM节点并响应给前端展示 针对第一种方法,可以采用JS的相关组件,或者使用JS的递归调用将服务端相应的数据组装成DOM节点内容,动态添加到菜单的Container中,网上的例子较多,在此不再赘述,本例就后两种方案进行讲解. 通过JSP的include指令结合J

利用多叉树实现Ext JS中的无限级树形菜单(一种构建多级有序树形结构JSON的方法)

一.问题研究的背景和意义 目前在Web应用程序开发领域,Ext JS框架已经逐渐被广泛使用,它是富客户端开发中出类拔萃的框架之一.在Ext的UI控件中,树形控件无疑是最为常用的控件之一,它用来实现树形结构的菜单.TreeNode用来实现静态的树形菜单,AsyncTreeNode用来实现动态的异步加载树形菜单,后者最为常用,它通过接收服务器端返回来的JSON格式的数据,动态生成树形菜单节点.动态生成树有两种思路:一种是一次性生成全部树节点,另一种是逐级加载树节点(利用AJAX,每次点击节点时查询下