在数据库中建立表
t_navgation
id--序号,
name--名称
nav_url--地址
//
remark--备注
isstop--是否停用
java 建立对应bean,这里不操作数据库,只是模拟下(实际根据你数据库来操作,生成对应树形菜单)
package com.model;
/**
* 栏目菜单栏----
* @author Ken Huang
*
*/
public class NavBean {
private int id;
private int parentid;
private String resourename;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParentid() {
return parentid;
}
public void setParentid(int parentid) {
this.parentid = parentid;
}
public String getResourename() {
return resourename;
}
public void setResourename(String resourename) {
this.resourename = resourename;
}
}
package com.model;
import java.util.ArrayList;
import java.util.List;
/**
* 通过构造树形栏目
* 分析:
* 递归的思想来进行数据传送
* @author cong *
*/
public class TreeBean {
public TreeBean(){}
private int id;
private String text;
private List item=new ArrayList();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public List getItem() {
return item;
}
public void setItem(List item) {
this.item = item;
}
public TreeBean(NavBean node,List<NavBean> navlist)
{
this.id=node.getId();
this.text=node.getResourename();
NavBean mode=null;
for(NavBean nodes:navlist)
{
if(nodes.getId()==id)
{
mode=nodes;
break;
}
}
navlist.remove(mode);
List<NavBean> children=getChirdlist(mode.getId(), navlist);
if(children.size()>0)
{
for(NavBean child:children)
{
TreeBean beanchild=new TreeBean(child,navlist);
this.item.add(child);
}
}
}
private List<NavBean> getChirdlist(int parentId,List<NavBean> list)
{
List<NavBean> childlist=new ArrayList<NavBean>();
for(NavBean childnode :list)
{
if(parentId==childnode.getParentid())
{
childlist.add(childnode);
}
}
return childlist;
}
}
测试:
package com.tree;
import java.util.List;
import com.model.NavBean;
import com.model.NavBeanService;
import com.model.TreeBean;
import net.sf.json.JSONObject;
public class TreeTest {
/**
* @param args
*/
public static void main(String[] args) {
NavBeanService service=new NavBeanService();
List<NavBean> lists=service.serach();
NavBean node=lists.get(0);
TreeBean tree=new TreeBean(node,lists);
System.out.println(tree.getItem().size());
JSONObject json=JSONObject.fromObject(tree);
System.out.println(json);
}
}
结果输出:
----------如有更好思路或想法,请留言评论下,谢谢。希望通过交流,让大家进步
相关推荐
JS树形菜单是很常用的JS特效代码,常用在管理软件当中,但是一套树形菜单已经不能满足需求,所以如果能有一套比较全面的树形菜单JS特效代码,将会非常方便,下面懒人萱将超全的JS树形菜单(dhtmlxTree)共享出来,...
dhtmlXtree树 右dhtmlXtree键菜单
dhtmlxTree 树形控件 JavaScript
内容索引:脚本资源,Ajax/JavaScript,树形菜单 dhtmlxTree 树形菜单大集合,就从Dhtml类库里摘录出来的,包含了许多种树形菜单的样式,部分样式如截图所示,不一一上图了,需要的请下载查看。这些树形菜单个个都经过...
本文件包含有各种树性菜单,可以学习,或者在此基础上进行二次开发
dhtmlxtree构建动态维护树,介绍dhtmltree的构建以及修改!
dhtmlxTree 树菜单.docx
可加载树形菜单的帮助文档,能够方便的生成各式各样的dhtmlxTree
JS 带右键菜单的目录树 dhtmlxtree+proto.menu 分权限 JS 带右键菜单的目录树 dhtmlxtree+proto.menu 分权限 图片预览 ...
第三方树控件dhtmlxTree 3.6
4、考虑到dhtmlxmenu实在指定的区域构建菜单,所以可以为dhtmlXTree树上的每一个节点添加右键事件,在这个右键事件里获得该节点对象所对应的区域,然后在这个区域内构建Menu菜单。 难点和解决方案: 1、怎样获得...
JavaScript写的dhtmlXTree类库实现的各种树形列表示例demo,需要放到服务器环境中运行,直接打开不好使
js动态树合集dhtmlXTree和dtree.rar 讲解说明 和api
类似于ext的效果,实现了简单的子节点的自动缩进。方便查看树形节点
dhtmlxtree免费版本不支持邮件菜单,此例子从网上摘抄过来,改动以后上传分享!
dtree, dhtmlxtree(1.5普通版及1.3专业版), drag-drop-tree
javascript树
NULL 博文链接:https://penghuaiyi.iteye.com/blog/1066944
JS 带右键菜单的目录树 dhtmlxtree+proto.menu JS 带右键菜单的目录树 dhtmlxtree+proto.menu JS 带右键菜单的目录树 dhtmlxtree+proto.menu ...