1. 程式人生 > >java樹形菜單實現

java樹形菜單實現

boot company 下午 roo spa dao nbsp control etc

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樹形菜單實現