免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

利用java怎么構造一個無限層級的樹形菜單

這期內容當中小編將會給大家帶來有關利用java怎么構造一個無限層級的樹形菜單,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創新互聯公司是一家專業提供新鄉縣企業網站建設,專注與成都網站設計、成都做網站、HTML5建站、小程序制作等業務。10年已為新鄉縣眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

1、構造一個實體類,用來存儲節點,所以我們構造的需要四個對象(id,pid,name,和chirenList)

2、構造菜單結構

3、構造子菜單,如此循環,通過pid判斷上級菜單

具體實現:

1、這里構造Tree.java實體類

package com.tcl.jr.crm.entity;

/**
 * 類名稱:Tree
 * 類描述:樹形結構
 */
public class Tree {

  private String id;
  private String pId;
  private String name;
  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getpId() {
    return pId;
  }

  public void setpId(String pId) {
    this.pId = pId;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  @Override
  public String toString() {
    return "Tree [id=" + id + ", pId=" + pId + ", name=" + name + "]";
  }

}

2、封裝樹形結構類,這里我封裝成一個通用的工具類,方便項目中使用,MenuTreeUtil.java,完整代碼如下,可直接復制使用:

package com.tcl.jr.crm.util;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.tcl.jr.crm.entity.Tree;

/**
 * 類名稱:MenuTreeUtil
 * 類描述:遞歸構造樹型結構
 */
public class MenuTreeUtil {
  
  public static Map<String,Object> mapArray = new LinkedHashMap<String, Object>(); 
  public List<Tree> menuCommon; 
  public List<Object> list = new ArrayList<Object>(); 
   
  public List<Object> menuList(List<Tree> menu){   
    this.menuCommon = menu; 
    for (Tree x : menu) {   
      Map<String,Object> mapArr = new LinkedHashMap<String, Object>(); 
      if(x.getpId()=="0"){ 
        mapArr.put("id", x.getId()); 
        mapArr.put("name", x.getName());  
        mapArr.put("pid", x.getpId());  
        mapArr.put("childList", menuChild(x.getId()));  
        list.add(mapArr); 
      } 
    }   
    return list; 
  } 
  
  public List<&#63;> menuChild(String id){ 
    List<Object> lists = new ArrayList<Object>(); 
    for(Tree a:menuCommon){ 
      Map<String,Object> childArray = new LinkedHashMap<String, Object>(); 
      if(a.getpId() == id){ 
        childArray.put("id", a.getId()); 
        childArray.put("name", a.getName()); 
        childArray.put("pid", a.getpId()); 
        childArray.put("childList", menuChild(a.getId()));
        lists.add(childArray); 
      } 
    } 
    return lists; 
  } 

}

3、最后在控制臺請求方法調用數據就行了,在controller的方法如下:

/**
   * 顯示APP樹形結構
   */
  @RequestMapping(value = { "getAPPTree" }, produces = "text/html;charset=UTF-8")
  @ResponseBody
  public String getAPPTree(HttpServletRequest request, HttpServletResponse response) throws Exception {
    Map<String, Object> returnmap = new HashMap<>();
    MenuTreeUtil menuTree = new MenuTreeUtil();
    PageData pd = this.getPageData();
    try {
      //這里的方法是根據前臺的機構類型代碼來查找數據庫數據的,這里不多加解釋,因人而異
      List<Tree> list = dataDicService.buildTree(pd.getString("instType"));
      List<Object> menuList = menuTree.menuList(list);
      //區別于web端,這邊APP端list不能轉為json格式,直接將list傳給前臺,轉成json對象的話vuejs前臺無法識別渲染
      returnmap.put("list", menuList);
    } catch (Exception e) {
      logger.error(e.getMessage());
    }
    return JsonMapper.toJsonString(returnmap);
  }

4、然后前臺ajax調用第三部的接口方法就而已請求到所需的數據,如何渲染成好的前臺頁面,參照我另一篇文章:vuejs使用遞歸組件實現樹形目錄

上述就是小編為大家分享的利用java怎么構造一個無限層級的樹形菜單了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

網頁題目:利用java怎么構造一個無限層級的樹形菜單
網頁地址:http://m.newbst.com/article30/gdsoso.html

成都網站建設公司_創新互聯,為您提供品牌網站建設標簽優化做網站動態網站移動網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司