树的制成 :: ShaoFan
来源: BlogBus 原始链接: http://blogbus.com:80/blogbus/blog/diary.php?diaryid=191367 存档链接: https://web.archive.org/web/20040924003409id_/http://blogbus.com:80/blogbus/blog/diary.php?diaryid=191367
ShaoFan 关于Java,以及我所感兴趣的一切的一切 <<<eclipse 3.0M9 RC0 新功能(一) | 主页 | 极品飞车5对虚拟内存的要求>>> 树的制成 2004-05-25 主要分为以下四个部分: 1、适合的客户端脚本(用于显示在HTML上,生成HTML代码) 2、标签库(用于生成JS的树定义,当然也可以用JAVABEAN) --JSP页面 3、树的数据结构(类、接口,用于为标签库提供树的数据结构,它是数据库记录和标签库的连接的纽带) 4、数据库的记录到树对象的转换 下面是我的实现: 1、JS脚本使用TigraTree,这是一个免费的面向对象的树脚本,功能比较齐全,树的定义简单,易于标签库生成JS代码 比如,以下定义了一个树: var TREE_ITEMS = [ [ '方圆公司','www.fangyuan.com', [ '技术部','tech.fangyuan.com', [ '救援队','rescue.fangyuan.com'], [ '上门服务队','support.fangyuan.com'] ], [ '市场部','market.fangyuan.com'], [ '办公室','office.fangyuan.com', [ '办公室厕所','wc.fangyuan.com' ] ], ] ]; 然后使用以下代码在页面显示树:
其中,TREE_ITEMS是树的定义,TREE_TPL是对各个图标的定义,可以根据需要更改 2、编写Tree标签库,该标签库从session/request中读取一个实现了Tree接口的对象,遍历该对象,来生成上面所示的js变量TREE_ITEMS,并写到页面上,同时也生成new tree(...)代码,来显示这棵树。 代码就像这样: <torch:tree name="treDeps" selected="org_selectedNode" captionProperty="DEP_NAME" href="actDepView.do" paramID="id" paramProperty="DEP_ID"/> name是bean的名字,selected是表示当前选中的节点的bean,用来在刷新的时候能记住树的状态。 树由很多个节点组成,每个节点带有一定的数据,也就是说,一个节点会和一个对象绑定。 captionProperty就是用来指定每个节点上的文字从绑定对象的哪个属性上取。href表示节点的链接,paramID/paramProperty用来生成动态链接的参数。 3、session/request中的tree对象是由业务方法从数据库读出并生成的。 另外,利用上面讲的基本原理,还可以实现很多功能。如各个节点可以定制使用不同的图标,而不再依赖于节点的状态来决定图标,也可以增加复选框、单选框等。甚至可以在数据量很大的时候,每次只取某层的节点,然后在点击某个节点旁的展开按钮时,即时从数据库取数据来显示。具体的就只能以后再写了。 rainy14f 发表于 2004-05-25 18:55 引用Trackback(0) | 编辑 Comments 发表评论 最近更新 用Tomcat插件搭建可跟踪调试的J2EE WEB开发环境 一些好用的Eclipse 3.0插件 突遇"安装程序启动安装引擎失败,不支持此接口" 小技巧:在JBUILDER中进行对类名进行大小写重构 一个方便的在线配色工具 极品飞车5对虚拟内存的要求 树的制成 eclipse 3.0M9 RC0 新功能(一) 用jTDS取代微软的SQLServer2000的JDBC驱动 onsubmit="return false" 详解(转)