//1.传入parentIdpublic List<Map<String, Object>> buildTree(Integer parentId) throws DBException { //2.定义一个List:tree,最后要返回这个List:tree List<Map<String, Object>> tree = new ArrayList<Map<String, Object>>(); //3.如果这个parentId为空,就令parentId=根Id if ( null == parentId) parentId = Constants.TREE_ROOT_ID; //4.根据这个parentId得到一级目录:list List<RelicsDataDictPo> list = listByParentId(parentId); if (list.isEmpty()) return tree;//判断:如果是最后一级 //5.根据根目录list映射出一级目录的:id,name,parentId for (RelicsDataDictPo obj : list) { //6.定义一个map:用以存储一级目录的信息,包括id Map<String, Object> map = new HashMap<String, Object>(); map.put("id", obj.getAutoId()); map.put("name", obj.getDictName()); map.put("parentId", obj.getParentId()); //7.将以这个目录的id作为parentId,递归建树,重回第一步 List<Map<String, Object>> subs = buildTree(obj.getAutoId()); if (!subs.isEmpty()) { map.put("children", subs); } tree.add(map); } return tree;}