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 建立连接 ...
随机推荐
- LeetCode算法题-Binary Tree Tilt(Java实现)
这是悦乐书的第263次更新,第276篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第130题(顺位题号是563).给定二叉树,返回整棵树的倾斜度.树节点的倾斜被定义为所有 ...
- 数据流中的第k大元素的golang实现
设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中 ...
- 【English】20190312
tokens记号 [ˈtoʊkən] delimiter characters分隔符字符 [dɪ'lɪmɪtə] [ˈkærɪktɚs] argument论据主题[ˈɑ:rgjumənt] ...
- HBase源码实战:BufferedMutator
/** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agr ...
- html5 contenteditable 实现table可编辑(网页版EXCEL)
一直想找一个免费的网页版的EXCEL插件,以便于多人共同在线编辑,始终没发现合适的. 其实自己实现类似功能也不难.参考:https://blog.csdn.net/chadcao/article/de ...
- Qt License 解读
对于桌面和移动平台应用 官方说明如下 Qt for Application Development lets you create applications for desktop and mobil ...
- Oracle 查询表对应的索引
select col.table_owner "table_owner", idx.table_name "table_name", col.index_own ...
- C++笔记-并发编程 异步任务(async)
转自 https://www.cnblogs.com/diysoul/p/5937075.html 参考:https://zh.cppreference.com/w/cpp/thread/lock_g ...
- iOS开发基础篇-transform属性
一. transform 属性 在OC中,通过 transform 属性可以修改对象的平移.缩放比例和旋转角度. 1)创建“基于控件初始位置”的形变 CGAffineTransformMakeRot ...
- [Oracle维护工程师手记]两表结合的MVIEW的告诉刷新
对两表结合查询建立MVIEW,进行MVIEW的的高速刷新失败,如何处理? 例如: SQL> drop user u1 cascade; User dropped. SQL> grant d ...