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 建立连接 ...
随机推荐
- PHP程序员从小白到高手,掌握这些技能少走弯路
PHP程序员从小白到高手,掌握这些技能少走弯路 PHP究竟是不是最好的语言,一直以来是程序员最大的“争议”,但毋庸置疑的是,PHP绝对是最有前途和力量的变成语言,也是你入门最值得学习的语言. 作为老牌 ...
- SpringBoot四大神器之Actuator
介绍 Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供 ...
- 多节点,多线程下发订单,使用zookeeper分布式锁机制保证订单正确接入oms系统
假设订单下发, 采用单机每分钟从订单OrderEntry接口表中抓100单, 接入订单oms系统中. 由于双十一期间, 订单量激增, 导致订单单机每分钟100单造成, 订单积压. 所以采用多节点多线程 ...
- JAVA工程师-蚂蚁金服电话面试
今天5点半接到一个杭州的电话,是蚂蚁金服打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来.挂完电话,心里忐忑的不行,感觉自己这也没准备好,那也没准备好.剩下半个小时完全没有心思再 ...
- python和anacoda安装第三方库的位置
查看已安装库及版本号,命令行pip list 安装第三方库位置:
- 【学习总结】Git学习-GIT工作流-千峰教育(来自B站)
Git工作流指南 - av32575602 文档资料 目录: 1-什么是版本控制系统 2-工作流简介 3-集中式工作流 4-功能分支工作流 5-GitFlow工作流 小记: 初看差点放弃了,不过后面还 ...
- springboot的热部署
SpringBoot 4.SpringBoot 整合 devtools 实现热部署 一.添加 devtools 依赖 <!-- Spring boot 热部署 : 此热部署会遇到 java. ...
- python之类的多态(鸭子类型 )、封装和内置函数property
一.多态 1.什么是多态:一个类表现出的多种状态--->通过继承来实现的例如:class Animal:passclass Dog(Animal):passclass Cat(Animal):p ...
- Day 4 测试(QwQ 表示没考好 未完待续。。。 可能要过一段时间才会更
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...
- 虚拟机iso整理
供个人备用,随缘补充 ubuntu-16.04.6-desktop-amd64.iso 资源: https://pan.baidu.com/s/1ZR_5jgzNsGeOrkE6hAqxEA 提取码: ...