生成菜单树

基础对象类:

public class Menu {
    
	private int idx;
    
    /**
     * This property corresponds to db column <tt>module_id</tt>.
     */
    private String moduleId;

    /**
     * This property corresponds to db column <tt>domain_id</tt>.
     */
    private String domainId;

    /**
     * This property corresponds to db column <tt>module_name</tt>.
     */
    private String moduleName;

    /**
     * This property corresponds to db column <tt>parent_module_id</tt>.
     */
    private String parentModuleId;

    /**
     * This property corresponds to db column <tt>module_type</tt>.
     */
    private String moduleType;

    /**
     * This property corresponds to db column <tt>leval</tt>.
     */
    private int leval;

    /**
     * This property corresponds to db column <tt>url</tt>.
     */
    private String url;

    /**
     * This property corresponds to db column <tt>refresh_flag</tt>.
     */
    private String refreshFlag;

    /**
     * This property corresponds to db column <tt>status</tt>.
     */
    private String status;
    
    private int reset;
    
    private int sort;
    
    
    private Menu parent;
    
    private List<Menu> childs=new ArrayList<Menu>();
}
package com.xxx;

import java.io.Serializable;
import java.util.Date;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


public class ModuleDTO implements Comparable<ModuleDTO> , Serializable {

    /**  */
    private static final long serialVersionUID = -5375294817851265857L;

    /**
     * This property corresponds to db column <tt>id</tt>.
     */
    private long id;

    /**
     * This property corresponds to db column <tt>module_id</tt>.
     */
    private String moduleId;

    /**
     * This property corresponds to db column <tt>domain_id</tt>.
     */
    private String domainId;

    /**
     * This property corresponds to db column <tt>module_name</tt>.
     */
    private String moduleName;

    /**
     * This property corresponds to db column <tt>parent_module_id</tt>.
     */
    private String parentModuleId;

    /**
     * This property corresponds to db column <tt>module_type</tt>.
     */
    private String moduleType;

    /**
     * This property corresponds to db column <tt>leval</tt>.
     */
    private int leval;

    /**
     * This property corresponds to db column <tt>url</tt>.
     */
    private String url;

    /**
     * This property corresponds to db column <tt>refresh_flag</tt>.
     */
    private String refreshFlag;

    /**
     * This property corresponds to db column <tt>status</tt>.
     */
    private String status;

    /**
     * This property corresponds to db column <tt>creator</tt>.
     */
    private String creator;

    /**
     * This property corresponds to db column <tt>create_time</tt>.
     */
    private Date createTime;

    /**
     * This property corresponds to db column <tt>modifier</tt>.
     */
    private String modifier;

    /**
     * This property corresponds to db column <tt>modified_time</tt>.
     */
    private Date modifiedTime;
    
    /**
     * This property corresponds to db column <tt>sort</tt>.
     */
    private int sort;

    /**
     * This property corresponds to db column <tt>reset</tt>.
     */
    private int reset;

    /**
     * Getter method for property <tt>id</tt>.
     * 
     * @return property value of id
     */
    public long getId() {
        return id;
    }



    /**
     * Setter method for property <tt>id</tt>.
     * 
     * @param id value to be assigned to property id
     */
    public void setId(long id) {
        this.id = id;
    }



    /**
     * Getter method for property <tt>moduleId</tt>.
     * 
     * @return property value of moduleId
     */
    public String getModuleId() {
        return moduleId;
    }



    /**
     * Setter method for property <tt>moduleId</tt>.
     * 
     * @param moduleId value to be assigned to property moduleId
     */
    public void setModuleId(String moduleId) {
        this.moduleId = moduleId;
    }



    /**
     * Getter method for property <tt>domainId</tt>.
     * 
     * @return property value of domainId
     */
    public String getDomainId() {
        return domainId;
    }



    /**
     * Setter method for property <tt>domainId</tt>.
     * 
     * @param domainId value to be assigned to property domainId
     */
    public void setDomainId(String domainId) {
        this.domainId = domainId;
    }



    /**
     * Getter method for property <tt>moduleName</tt>.
     * 
     * @return property value of moduleName
     */
    public String getModuleName() {
        return moduleName;
    }



    /**
     * Setter method for property <tt>moduleName</tt>.
     * 
     * @param moduleName value to be assigned to property moduleName
     */
    public void setModuleName(String moduleName) {
        this.moduleName = moduleName;
    }



    /**
     * Getter method for property <tt>parentModuleId</tt>.
     * 
     * @return property value of parentModuleId
     */
    public String getParentModuleId() {
        return parentModuleId;
    }



    /**
     * Setter method for property <tt>parentModuleId</tt>.
     * 
     * @param parentModuleId value to be assigned to property parentModuleId
     */
    public void setParentModuleId(String parentModuleId) {
        this.parentModuleId = parentModuleId;
    }



    /**
     * Getter method for property <tt>moduleType</tt>.
     * 
     * @return property value of moduleType
     */
    public String getModuleType() {
        return moduleType;
    }



    /**
     * Setter method for property <tt>moduleType</tt>.
     * 
     * @param moduleType value to be assigned to property moduleType
     */
    public void setModuleType(String moduleType) {
        this.moduleType = moduleType;
    }



    /**
     * Getter method for property <tt>leval</tt>.
     * 
     * @return property value of leval
     */
    public int getLeval() {
        return leval;
    }



    /**
     * Setter method for property <tt>leval</tt>.
     * 
     * @param leval value to be assigned to property leval
     */
    public void setLeval(int leval) {
        this.leval = leval;
    }



    /**
     * Getter method for property <tt>url</tt>.
     * 
     * @return property value of url
     */
    public String getUrl() {
        return url;
    }



    /**
     * Setter method for property <tt>url</tt>.
     * 
     * @param url value to be assigned to property url
     */
    public void setUrl(String url) {
        this.url = url;
    }



    /**
     * Getter method for property <tt>refreshFlag</tt>.
     * 
     * @return property value of refreshFlag
     */
    public String getRefreshFlag() {
        return refreshFlag;
    }



    /**
     * Setter method for property <tt>refreshFlag</tt>.
     * 
     * @param refreshFlag value to be assigned to property refreshFlag
     */
    public void setRefreshFlag(String refreshFlag) {
        this.refreshFlag = refreshFlag;
    }



    /**
     * Getter method for property <tt>status</tt>.
     * 
     * @return property value of status
     */
    public String getStatus() {
        return status;
    }



    /**
     * Setter method for property <tt>status</tt>.
     * 
     * @param status value to be assigned to property status
     */
    public void setStatus(String status) {
        this.status = status;
    }



    /**
     * Getter method for property <tt>creator</tt>.
     * 
     * @return property value of creator
     */
    public String getCreator() {
        return creator;
    }



    /**
     * Setter method for property <tt>creator</tt>.
     * 
     * @param creator value to be assigned to property creator
     */
    public void setCreator(String creator) {
        this.creator = creator;
    }



    /**
     * Getter method for property <tt>createTime</tt>.
     * 
     * @return property value of createTime
     */
    public Date getCreateTime() {
        return createTime;
    }



    /**
     * Setter method for property <tt>createTime</tt>.
     * 
     * @param createTime value to be assigned to property createTime
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }



    /**
     * Getter method for property <tt>modifier</tt>.
     * 
     * @return property value of modifier
     */
    public String getModifier() {
        return modifier;
    }



    /**
     * Setter method for property <tt>modifier</tt>.
     * 
     * @param modifier value to be assigned to property modifier
     */
    public void setModifier(String modifier) {
        this.modifier = modifier;
    }



    /**
     * Getter method for property <tt>modifiedTime</tt>.
     * 
     * @return property value of modifiedTime
     */
    public Date getModifiedTime() {
        return modifiedTime;
    }

    public int getSort() {
        return sort;
    }

    public void setSort(int sort) {
        this.sort = sort;
    }

    public int getReset() {
        return reset;
    }

    public void setReset(int reset) {
        this.reset = reset;
    }

    /**
     * Setter method for property <tt>modifiedTime</tt>.
     * 
     * @param modifiedTime value to be assigned to property modifiedTime
     */
    public void setModifiedTime(Date modifiedTime) {
        this.modifiedTime = modifiedTime;
    }



    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }

    @Override
    public int compareTo(ModuleDTO dest) {
        return null == dest ? -1 : this.getSort() - dest.getSort();
    }
}

生成树结构:

/**
     * 生成菜单树对象
     * 
     * @param modules
     * @return
     */
    private List<Menu> genMenuTree(List<ModuleDTO> modules){
        Menu menu =null;
        List<Menu> menuList=new ArrayList<Menu>();
        int i=0;
        for(ModuleDTO moduleDTO :modules){
            menu=new Menu();
            menu.setIdx(i++);
            BeanUtils.copyProperties(moduleDTO, menu);
            menuList.add(menu);
        }
        
        for(Menu lv1Menu:menuList){
                for(Menu lv2Menu:menuList){
                    if(lv1Menu.getModuleId().equals(lv2Menu.getModuleId())){
                        continue;
                    }
                    if(lv1Menu.getModuleId().equals(lv2Menu.getParentModuleId())){
                        lv1Menu.putChild(lv2Menu);
                    }
                    if(lv1Menu.getParentModuleId().equals(lv2Menu.getModuleId())){
                        lv1Menu.setParent(lv2Menu);
                    }
                    
                }
            
        }
        return menuList;
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值