關於java 展示樹形菜單Tree的一些備忘資訊。[bootstrap tree]

來源:互聯網
上載者:User

標籤:

最近在項目中,需要迭代,顯示樹形菜單,這裡我們使用的是bootstracp,所以使用的是bootstracp多級列表樹,

使用的時候,非常簡單,只需

<!-- Required Stylesheets --><link href="./css/bootstrap.css" rel="stylesheet"><!-- Required Javascript --><script src="./js/jquery.js"></script><script src="./js/bootstrap-treeview.js"></script>

按照 執行個體,就可以在頁面展示出tree了。

******************我要說的當然不是這個***************************************************

這裡,我想說的是,背景一些技巧。

資料庫中,在我們考慮tree的時候,一般都是ID,和parentID。

以 分類樹 為例, 直接上代碼:

<select id="loadChild" resultMap="categoryResult">    select * FROM P_CATEGORY WHERE  PARENTID = #id#</select>
/**     * 將類別轉換為json資料對象;     * 這裡可以直接返回,SpringMVC支援返回json資料;     * 這裡使用BTree 和Gson,簡化返回的參數.     */    @Override    public String dealListToJson(Category cg) {        cg = childNode( cg);        BTree bt = new BTree();        bt =    covertToTree(bt,cg);        Gson gson =new Gson();        return gson.toJson(bt);    }/**     * 迭代擷取每一級的 子節點,填充完整;     * @param cg     * @return     */    private Category childNode(Category cg) {        cg = listChildNode(cg);        if (cg.getCategoryList().size() > 0) {            for (Category cgTemp : cg.getCategoryList()) {                childNode(cgTemp);            }        }        return cg;    }private BTree covertToTree(BTree bt,Category cg ){        bt.setText(cg.getName());        bt.setId(cg.getId());        List<BTree> btList = new ArrayList<BTree>();        if (cg.getCategoryList().size() > 0) {            for(Category cgTemp : cg.getCategoryList()){                BTree btTemp = new  BTree();                btTemp=covertToTree(btTemp,cgTemp);                btList.add(btTemp);            }        }        bt.setNodes(btList);        return bt;    }/**     * 擷取當前類別的下一級 子節點,【只是擷取下一級】     * @param cg     * @return     */    public Category listChildNode(Category cg) {        cg.setCategoryList(getSqlMapClientTemplate().queryForList("Category.loadChild",cg));        return cg;    }

迭代的時候,每次都去請求 資料庫了,這裡可以用緩衝。。暫時沒還添加。[其實是我們的節點不多]

這裡使用Gson轉換List,其實和其他的一樣,

使用自訂的BTree,這個可以減少一些不必要的屬性加到Tree 的 JSON字串中。

。。

最終返回的資料格式:

{"text":"圖書分類","id":1,"nodes":[{"text":"紡織專業圖書","id":9,"nodes":[{"text":"紡織手工圖書","id":11,"nodes":[]},{"text":"紡織加工圖書","id":12,"nodes":[]}]},{"text":"紡織機械圖書","id":10,"nodes":[]}]}

就是這樣了,

有一點:

    var tree = [${gsonCol}];        $(function(){        //初始化樹         $(‘#tree‘).treeview({                data: tree        });       //節點被選中            $(‘#tree‘).on(‘nodeSelected‘, function(event, data) {            $("#hidClo_parent").val(data.id);       });                $(‘#tree_main‘).treeview({            data: tree        });

在初始化的時候,var tree=[${gsonCol}],這裡要使用[],不然顯示不出樹來。

 

關於java 展示樹形菜單Tree的一些備忘資訊。[bootstrap tree]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.