ajax动态树的实现(核心代码100行以内)

本文介绍了如何使用Ajax和Java实现动态树结构,通过异步加载减少初次加载的数据量,提高执行速度。主要分为四层:视图层、业务逻辑层、数据持久层和数据库层。采用CSS+Div布局,数据设计使用parid字段标识父级,通过Ajax请求获取树的子节点,业务逻辑层使用TreeBiz类处理树的生成,视图层的tree.jsp展示树结构,treeAction.jsp负责生成指定节点的下级节点。
摘要由CSDN通过智能技术生成

早就想写一个自己的动态树了,网上也能找到很多,可始终是别人实现的。以前一直没时间,这不年底了,工作任务也完成了,闲着没事就写了这个东西,和大家分享一下

一.设计思想:

1.布局css+div:好处就不多说了

2.利用ajax,当点击树中某个节点时才生成其子节点,这样能避免了客户端一次性加载整棵树,执行速度快

3.树的生成用java控制而不是像Dtree的实现是用javascript实现,dtree实现的js代码看了你都会头晕,而且这种树是一次性加载,如果你想利用异步请求(ajax)获得一个树,那么实现起来相当麻烦。因为异步请求后执行是在服务器端执行的,js又不能在服务器端执行。但如果数是用java实现就不一样了,呵呵。

4.本程序实现分四层:视图层tree.jsp,treeAction.jsp(可以在通过控制层实现);业务层com.tree.biz.TreeBiz;数据持久层用hibernate,数据库层用mysql

二。数据设计:

很明显,运用表内关联是不错的选择,有多种实现方式,我设计了个parid字段用于标识父级id(也可以通过编号来控制,01,01001,01002的形式,具体根据项目的需求来定)建库脚本如下:

************************************数据脚本 start********************************

/*
SQLyog Enterprise - MySQL GUI v5.02
Host - 4.0.18-nt : Database - template
Server version : 4.0.18-nt
*/


create database if not exists `template`;

USE `template`;

/*Table structure for table `tree_demo` */

DROP TABLE IF EXISTS `tree_demo`;

CREATE TABLE `tree_demo` (
  `id` bigint(20) NOT NULL auto_increment,
  `item_num` varchar(20) default NULL,
  `item_name` varchar(50) default NULL,
  `item_parId` bigint(20) default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

/*Data for the table `tree_demo` */

insert into `tree_demo` values

(1,'','一级菜单1',0),

(2,'','一级菜单2',0),

(3,'','一级菜单3',0),

(4,'','一级菜单4',0),

(5,'','一级菜单5',0),

(6,'','二级菜单11',1),

(7,'','二级菜单12',1),

(8,'','二级菜单13',1),

(9,'','三级菜单121',7),

(10,'','三级菜单122',7),

(11,'','三级菜单123',7),

(12,'','三级菜单124',7),

(13,'','二级菜单21',2),

(14,'','二级菜单22',2);

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值