java递归菜单树转换成pojo对象_Java教程-查字典教程网
java递归菜单树转换成pojo对象
java递归菜单树转换成pojo对象
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:packagecom.cjonline.foundation.authority.pojo;importjava.util...

复制代码 代码如下:

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);

}

}

}

}

}

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类