zoukankan      html  css  js  c++  java
  • MenuTreeUtil菜单树形递归工具类

    package com.aaa.util;
    
    
    import com.aaa.controller.vm.MenuVM;
    import com.aaa.entity.Menu;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 组装菜单树工具类
     * Created by cws
     * @author Administrator
     */
    public class MenuTreeUtil {
    
        public static MenuVM getTree(List<Menu> list) {
    
            //判断是否有获取到数据
            if (list == null || list.size() < 1) {
                return null;
            }
            return buildTree(getRoot(list), list);
        }
    
        private static MenuVM buildTree(MenuVM pnode, List<Menu> nodes) {
            List<MenuVM> childs = new ArrayList<>();
            for (Menu tmp : nodes) {
                if (pnode.getId().equals(tmp.getParentId())) {
                    childs.add(new MenuVM(tmp));
                }
            }
    
            //二次递归遍历子节点
            if (childs.size() > 0) {
                pnode.setSubMenu(childs);
                for (MenuVM ptmp : childs) {
                    buildTree(ptmp, nodes);
                }
            }
            return pnode;
        }
    
        /**
         * 获取一级目录
         *
         * @param list
         */
        private static MenuVM getRoot(List<Menu> list) {
            for (Menu po : list) {
                if ("#".equals(po.getParentId())) {
                    return new MenuVM(po);
                }
            }
            return null;
        }
    
    
        /**
         * @param list
         */
        public static List<MenuVM> getMenu(List<Menu> list) {
            //判断是否有获取到数据
            if (list == null || list.size() < 1) {
                return null;
            }
    
            return getTree(list) == null ? null : getTree(list).getSubMenu();
        }
    
    }`
    <</br>>
    ## 例如:
    ```/**
         * 根据用户id查找权限树菜单
         * @param userId
         * @return
         */
        @Override
        public List<MenuVM> getMenu(String userId) {
            List<Menu> menuList = baseMapper.selectMenuByUserId(userId);
            return MenuTreeUtil.getMenu(menuList);
        }`
  • 相关阅读:
    解决maven构建webapp index.jsp报错问题
    Maven入门介绍
    Linux常用命令的解释
    linux怎么查看一个文件夹的大小
    EPEL源-是什么全称
    nginx+php-fpm配置后页面显示空白的解决方法(yum形式的安装)
    配置新服务器 的一些 依赖库 php mysql nginx
    服务器 CentOS上yum安装Nginx服务
    Java File创建新目录和文件
    struts2的文件上传
  • 原文地址:https://www.cnblogs.com/cwshuo/p/13890726.html
Copyright © 2011-2022 走看看