源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java递归菜单树转换成pojo对象

  • 时间:2022-01-25 08:09 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java递归菜单树转换成pojo对象
[u]复制代码[/u] 代码如下:
  package com.cjonline.foundation.authority.pojo; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import com.cjonline.foundation.util.CheckNullEmpty; /**  * 实现递归的帮助类,最终的结果可以描述成如下:  * 根(root)  * --1(子系统1)  * -----1.1  * -------1.1.1  * -------1.1.2  * ------- ....  * -----1.2  * --2(子系统2)  * -----2.1  * -------2.1.1  * -------2.1.2  * ------- ....  * -----2.2  */ public class ModelList implements java.io.Serializable {     private static final Logger logger = Logger.getLogger(ModelList.class);     private static final long serialVersionUID = 6384598893693849820L;     /**      * model代表当前模块      */     private SysModel model;     /**      * models代表当前模块下面的子模块,      */     private List<ModelList> subList = new ArrayList<ModelList>();     /**      * 菜单级别      */     private int flag = 0;     public SysModel getModel() {         return model;     }     public void setModel(SysModel model) {         this.model = model;     }     public List<ModelList> getSubList() {         return subList;     }     public void setSubList(List<ModelList> subList) {         this.subList = subList;     }     public void setFlag(int flag) {         this.flag = flag;     }     public int getFlag() {         return flag;     }     /**      * 递归方法根据传入的模块集合形成层级菜单      */     @SuppressWarnings("unchecked")     public ModelList createTree2(List<SysModel> ms) {         //         ModelList node = new ModelList();         ArrayList<SysModel> fu = new ArrayList<SysModel>();// 用来存储parentId为空的父节点;         ArrayList<SysModel> childs = new ArrayList<SysModel>();// 用来存储不是系统的模块         // 将系统和模块菜单分开         for (Iterator<SysModel> it = ms.iterator(); it.hasNext();) {             SysModel mode = (SysModel) it.next();             String parentId = mode.getParentId();             if (parentId == null || parentId.equals("")) {                 fu.add(mode);             } else {                 childs.add(mode);             }         }         //由于是多个子系统,首先要找出有多少个子系统         for (SysModel model : fu) {             ModelList node1 = new ModelList();             node1.setFlag(0);             node1.setModel(model);             node.subList.add(node1);             appendChild(node1, childs);         }         return node;     }     /**      * node节点 childs为所以系统下的子节点      */     public void appendChild(ModelList node, List<SysModel> childs) {         if (node != null) {             String systemId = node.getModel().getSystemId();             String smid = node.getModel().getSysModuleId();             int flag = node.getFlag();             if (childs != null && childs.size() > 0) {                 for (SysModel model : childs) {                     String systemId2 = model.getSystemId();                     String parentId2 = model.getParentId();                     if (systemId.equals(systemId2)) {                         if (parentId2.equals(smid)) {                             ModelList child = new ModelList();                             child.setModel(model);                             child.setFlag(flag + 1);                             node.getSubList().add(child);                             appendChild(child, childs);                         }                     }                 }             }         }     } }  
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部