单位树状展示的java项目_关于java 展示树形菜单Tree的一些备忘信息。[bootstrap tree]...

最近在项目中,需要迭代,显示树形菜单,这里我们使用的是bootstracp,所以使用的是bootstracp多级列表树,

使用的时候,非常简单,只需

按照 实例,就可以在页面展示出tree了。

******************我要说的当然不是这个***************************************************

这里,我想说的是,后台的一些技巧。

数据库中,在我们考虑tree的时候,一般都是ID,和parentID。

以 分类树 为例, 直接上代码:

select * FROM P_CATEGORY WHERE PARENTID =#id#

/*** 将类别转换为json数据对象;

* 这里可以直接返回,SpringMVC支持返回json数据;

* 这里使用BTree 和Gson,简化返回的参数.*/@OverridepublicString dealListToJson(Category cg) {

cg=childNode( cg);

BTree bt= newBTree();

bt=covertToTree(bt,cg);

Gson gson=newGson();returngson.toJson(bt);

}/*** 迭代获取每一级的 子节点,填充完整;

*@paramcg

*@return

*/

privateCategory childNode(Category cg) {

cg=listChildNode(cg);if (cg.getCategoryList().size() > 0) {for(Category cgTemp : cg.getCategoryList()) {

childNode(cgTemp);

}

}returncg;

}privateBTree covertToTree(BTree bt,Category cg ){

bt.setText(cg.getName());

bt.setId(cg.getId());

List btList = new ArrayList();if (cg.getCategoryList().size() > 0) {for(Category cgTemp : cg.getCategoryList()){

BTree btTemp= newBTree();

btTemp=covertToTree(btTemp,cgTemp);

btList.add(btTemp);

}

}

bt.setNodes(btList);returnbt;

}/*** 获取当前类别的下一级 子节点,【只是获取下一级】

*@paramcg

*@return

*/

publicCategory listChildNode(Category cg) {

cg.setCategoryList(getSqlMapClientTemplate().queryForList("Category.loadChild",cg));returncg;

}

迭代的时候,每次都去请求 数据库了,这里可以用缓存。。暂时没还添加。[其实是我们的节点不多]

这里使用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":[]}]}

05848e9c7aa38c2d8f7789836bc7233d.png就是这样了,

有一点:

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}],这里要使用[],不然显示不出树来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值