java树形菜单实现
java树形菜单实现
公司表:

部门表:

实体类:
public class Node {
private Integer companyId;//公司id
private String companyName;//公司名字
private Integer departId;//部门id
private String parentId;
private String departName;//部门名字
private List<Node> children; //父节点的子类
get/set.............
}
树形节点工具类:
package com.dengwei.day01springboot.utils; import com.dengwei.day01springboot.model.Node; import java.util.ArrayList;
import java.util.List; /**
* @Author
* @ClassName TreeUtile
* @Description TODO
* @Date 2018/10/30 0030 下午 11:29
* @Version 1.0
*/
public class TreeUtile {
/**
* @Author
* @Description //TODO
* @Date 2018/10/31 0031 上午 12:02
* @Param nodes :所有的节点列表
* @return
*/
public List data(List<Node> nodes) {
ArrayList<Node> rootNode = new ArrayList<>();
for(Node node:nodes){
if(node.getParentId().equals("0")){
rootNode.add(node);
}
}
for(Node node:rootNode){
List<Node> child = getChild(String.valueOf(node.getDepartId()), nodes);
node.setChildren(child);
}
return rootNode;
} /**
* @return
* @Author
* @Description //TODO 获取根节点的子节点
* @Date 2018/10/30 0030 下午 11:37
* @Param
*/
public List<Node> getChild(String id, List<Node> allNode) {
//存放子菜单的集合
ArrayList<Node> listChild = new ArrayList<>();
for (Node node : allNode) {
if (node.getParentId().equals(id)) {
listChild.add(node);
}
}
//递归:
for (Node node : listChild) {
node.setChildren(getChild(String.valueOf(node.getDepartId()), allNode));
}
if (listChild.size() == 0) {
return null;
}
return listChild;
}
}
controller使用:

dao:

mapper:

java树形菜单实现的更多相关文章
- java构建树形菜单递归工具类
1.设计菜单实体 import java.util.List; public class Menu { //菜单id private Long id; //父节点id private Long par ...
- java 传入list集合 返回树形菜单,for循环遍历
public List<SysPermissionVO> getTreeMenu(List<SysPermissionVO> list,SysPermissionVO sysP ...
- WEB开发中前后台树形菜单的展示设计
在WEB开发中经常需要进行树形菜单的展示,本例通过不同角度的总结了如下三种实现方式: 通过JS的递归实现前端菜单DOM的动态创建 通过JSP的include指令结合JSTL表达式语言递归实现菜单的展示 ...
- jquery easy ui 1.3.4 Tree树形菜单(9)
9.1.创建树形菜单 <ul id="tt" class="easyui-tree"> <li><span>第一级</ ...
- Android 多级树形菜单
在Android里要实现树形菜单,都是用ExpandableList(也有高手自己继承ListView或者LinearLayout来做),但是ExpandableList一般只能实现2级树形菜单... ...
- SpringMVC+ZTree实现树形菜单权限配置
计划在开源项目里加入权限配置的功能,打算加入zTree实现树形结构. Team的Github开源项目链接:https://github.com/u014427391/jeeplatform 欢迎sta ...
- zTree树形菜单交互选项卡效果实现
1. 添加自定义属性 page 2. 为 ztree 每个树形节点,添加点击事件 <!DOCTYPE html> <html> <head> <meta ch ...
- zTree树形菜单使用实例
在每个节点添加 id 和 pid, id 表示当前节点编号,pid 表示父节点编号 第一步:在页面显示菜单位置,添加 ul设置 class=”ztree” 第二步:开启简单数据格式支持 第三步:编写树 ...
- dtree实现动态加载树形菜单,动态插入树形菜单
1.导入 dtree文件 dtree.css img文件夹 dtree.js 2. 建立对应 的数据库 1 父ID name id 3 建立连接 ...
随机推荐
- Linix基本命令
基本命令关机:shutdown -h halt init 0 poweroff重启:shutdown -r reboot init 6pwd:查看工作目录ls:查看指定目录的内容-l:列表显示-a:显 ...
- LeetCode算法题-Student Attendance Record I(Java实现)
这是悦乐书的第258次更新,第271篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第125题(顺位题号是551).您将获得一个表示学生出勤记录的字符串. 该记录仅包含以下 ...
- 【技术文章】《初识Python》
本文地址:http://www.cnblogs.com/aiweixiao/p/8390413.html 原文地址 点击关注微信公众号 wenyuqinghuai 1.前言 早就知道Python这一语 ...
- particles.js在vue上的运用
转:https://www.jianshu.com/p/c52b3e91c94f 知乎的首页后面的粒子动效总觉得很炫酷,搜了一下,发现是用particles.js编写的.刚好目前的项目是利用vue框架 ...
- python Socket socketserver
Socket 套接字 socket的 类型 实现socket对象时传入 到socket 类中 socket.AF_INET 服务器间的通讯 IPv4 socket.AF_INET6 IPv6 sock ...
- JDK1.8源码(八)——java.util.HashSet 类
在上一篇博客,我们介绍了 Map 集合的一种典型实现 HashMap ,在 JDK1.8 中,HashMap 是由 数组+链表+红黑树构成,相对于早期版本的 JDK HashMap 实现,新增了红黑树 ...
- 字符串匹配KMP算法详解
1. 引言 以前看过很多次KMP算法,一直觉得很有用,但都没有搞明白,一方面是网上很少有比较详细的通俗易懂的讲解,另一方面也怪自己没有沉下心来研究.最近在leetcode上又遇见字符串匹配的题目,以此 ...
- [Oracle维护工程师手记]两表结合的MVIEW的告诉刷新
对两表结合查询建立MVIEW,进行MVIEW的的高速刷新失败,如何处理? 例如: SQL> drop user u1 cascade; User dropped. SQL> grant d ...
- day4(分支结构,循环结构,for循环,九九乘法表)
一:复习 ''' 1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开头__结尾的变量, ...
- Linux下部署开源版“禅道”项目管理系统
1.开源版安装包下载 [root@iZbp ~]# wget http://dl.cnezsoft.com/zentao/9.0.1/ZenTaoPMS.9.0.1.zbox_64.tar.gz 2. ...