Java 构建不限级别,不限字段个数的树形菜单

我们要用到树形菜单的时候需要一些工具类,但是菜单显示的内容或者字段个数不一样,要统一封装,直接上代码

package common;

import org.apache.commons.lang.StringUtils;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;


/**
 *  * 类名称:MenuTreeUtil
 *  * 类描述:递归构造树型结构
 *  
 */
public class MenuTreeUtil {
    public static Map mapArray = new LinkedHashMap();
    public List> menuCommon;
    public List list = new ArrayList();

    /***
     *
     * @param menuList
     * @param ids 主键 {"显示的字段","数据库查询出来的字段"}
     * @param parentIds 父键{"显示的字段","数据库查询出来的字段"}
     * @param names 名称{"显示的字段","数据库查询出来的字段"}
     * @param children 子集 key 例如: sub
     * @param params 其它参数列表 {"显示的字段","数据库查询出来的字段"}
     * @return
     */
    public  List menuList(List> menuList,String[] ids,String[] parentIds,String[] names,String children,String[]... params) {
        if(menuList ==null){
            menuList=new ArrayList>();
        }
        this.menuCommon = menuList;
        for (Map x : menuList) {
            Map mapArr = new LinkedHashMap();
            String s=x.get(parentIds[1]).toString();
            System.out.println("_________________________________________________________________________________"+s);
            if ("0".equals(s)) {
                mapArr.put(ids[0], x.get(ids[1]));
                mapArr.put(parentIds[0], x.get(parentIds[1]));
                mapArr.put(names[0], x.get(names[1]));
                if(null != params){
                    for (int i=0;i menuChild(String id,String[] ids,String[] parentIds,String[] names,String children,String[]... params) {
        List lists = new ArrayList();
        for (Map a : menuCommon) {
            Map childArray = new LinkedHashMap();
            if (id.equals(obj2Str(a.get(parentIds[1])))) {
                childArray.put(ids[0], a.get(ids[1]));
                childArray.put(parentIds[0], a.get(parentIds[1]));
                childArray.put(names[0],a.get(names[1]));
                if(null != params){
                    for (int i=0;i 
  

 

你可能感兴趣的:(java树形菜单,Java不限制字段数菜单,递归树形菜单,树形菜单)