现在的位置: 首页 > 编程语言 > 正文

如何实现java递归处理权限管理菜单树或分类

2020年02月13日 编程语言 ⁄ 共 2553字 ⁄ 字号 评论关闭

这篇文章主要介绍了如何实现java递归 处理权限管理菜单树或分类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.数据库表设计

2.实体类设计

package com.ieou.capsule.dto.SystemPermissions;import java.util.List;/** * 功能菜单类 */public class SystemPermissionsTree {private String functionCode;//菜单码private String parentFunctionCode;//父级菜单码private String functionName;//菜单名private Boolean flag;// true:选中 false:未选中private List<SystemPermissionsTree> childrenList;public String getFunctionCode() {return functionCode;}public void setFunctionCode(String functionCode) {this.functionCode = functionCode;}public String getParentFunctionCode() {return parentFunctionCode;}public void setParentFunctionCode(String parentFunctionCode) {this.parentFunctionCode = parentFunctionCode;}public String getFunctionName() {return functionName;}public void setFunctionName(String functionName) {this.functionName = functionName;}public Boolean getFlag() {return flag;}public void setFlag(Boolean flag) {this.flag = flag;}public List<SystemPermissionsTree> getChildrenList() {return childrenList;}public void setChildrenList(List<SystemPermissionsTree> childrenList) {this.childrenList = childrenList;}}

3.递归工具类

package com.ieou.capsule.util;import com.ieou.capsule.dto.SystemPermissions.SystemPermissionsTree;import java.util.ArrayList;import java.util.List;public class TreeUtil {/** * 作者:一沐枫一 * 来源:CSDN * 原文:https://blog.csdn.net/gxgl8811/article/details/72803833 * 版权声明:本文为博主原创文章,转载请附上博文链接! */public static List<SystemPermissionsTree> getTreeList(List<SystemPermissionsTree> entityList) {List<SystemPermissionsTree> resultList = new ArrayList<>();//获取顶层元素集合String parentCode;for (SystemPermissionsTree entity : entityList) {parentCode = entity.getParentFunctionCode();//顶层元素的parentCode==null或者为0if (parentCode == null || "0".equals(parentCode)) {resultList.add(entity);}}//获取每个顶层元素的子数据集合for (SystemPermissionsTree entity : resultList) {entity.setChildrenList(getSubList(entity.getFunctionCode(), entityList));}return resultList;}/** * 获取子数据集合 * * @param id * @param entityList * @return * @author jianda * @date 2017年5月29日 */private static List<SystemPermissionsTree> getSubList(String id, List<SystemPermissionsTree> entityList) {List<SystemPermissionsTree> childList = new ArrayList<>();String parentId;//子集的直接子对象for (SystemPermissionsTree entity : entityList) {parentId = entity.getParentFunctionCode();if (id.equals(parentId)) {childList.add(entity);}}//子集的间接子对象for (SystemPermissionsTree entity : childList) {entity.setChildrenList(getSubList(entity.getFunctionCode(), entityList));}//递归退出条件if (childList.size() == 0) {return null;}return childList;}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: 如何实现java递归 处理权限管理菜单树或分类

以上就上有关如何实现java递归处理权限管理菜单树或分类的相关介绍,要了解更多java,递归,权限,管理,菜单,分类内容请登录学步园。

抱歉!评论已关闭.