码迷,mamicode.com
首页 > 编程语言 > 详细

java树形菜单实现

时间:2018-10-31 01:15:52      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:des   class   script   classname   null   tree   utils   param   getc   

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树形菜单实现

标签:des   class   script   classname   null   tree   utils   param   getc   

原文地址:https://www.cnblogs.com/dw3306/p/9880454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!