Shao Fan

关于JAVA与软件工程
posts - 31, comments - 71, trackbacks - 0, articles - 4
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

用Javascript和JSP标签在页面动态生成树

Posted on 2006-02-26 18:47 shaofan 阅读(5556) 评论(4)  编辑  收藏 所属分类: Java
主要分为以下四个部分:

1、适合的客户端脚本(用于显示在HTML上,生成HTML代码)
2、标签库(用于生成JS的树定义,当然也可以用JAVABEAN) --JSP页面
3、树的数据结构(类、接口,用于为标签库提供树的数据结构,它是数据库记录和标签库的连接的纽带)
4、数据库的记录到树对象的转换
 
下面是我的实现:

1、JS脚本使用TigraTree,这是一个免费的面向对象的树脚本,功能比较齐全,树的定义简单,易于标签库生成JS代码
比如,以下定义了一个树:

 1 var TREE_ITEMS =
 2 [
 3  
 4 [ '方圆公司','www.fangyuan.com',
 5         [ '技术部','tech.fangyuan.com',
 6                 [ '救援队','rescue.fangyuan.com'],
 7                 [ '上门服务队','support.fangyuan.com']
 8         ],
 9         [ '市场部','market.fangyuan.com'],
10         [ '办公室','office.fangyuan.com',
11                 [ '办公室厕所','wc.fangyuan.com'
12                 ]
13         ],
14 ]
15 ];

 
然后使用以下代码在页面显示树:

<script language="JavaScript">
         
new tree (TREE_ITEMS, TREE_TPL );
</script>

 
其中,TREE_ITEMS是树的定义,TREE_TPL是对各个图标的定义,可以根据需要更改
 
2、编写Tree标签库,该标签库从session/request中读取一个实现了Tree接口的对象,遍历该对象,来生成上面所示的js变量TREE_ITEMS,并写到页面上,同时也生成new tree(...)代码,来显示这棵树。
代码就像这样:

<view: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对象是由业务方法从数据库读出并生成的。
 
另外,利用上面讲的基本原理,还可以实现很多功能。如各个节点可以定制使用不同的图标,而不再依赖于节点的状态来决定图标,也可以增加复选框、单选框等。甚至可以在数据量很大的时候,每次只取某层的节点,然后在点击某个节点旁的展开按钮时,即时从数据库取数据来显示。具体的就只能以后再写了。

(转移自 shaofan.blogbus.com )

评论

# re: 用Javascript和JSP标签在页面动态生成树  回复  更多评论   

2006-07-12 09:51 by flygoo
有没有例子

# re: 用Javascript和JSP标签在页面动态生成树  回复  更多评论   

2006-08-12 09:47 by tuyuan
能不能多贴点东西啊,这样太不清楚了。
从端到端的详细的说明下
期待中。。。。。。。。。

# re: 用Javascript和JSP标签在页面动态生成树  回复  更多评论   

2006-08-16 19:38 by shaofan
@tuyuan

哪里不清楚呢?

# re: 用Javascript和JSP标签在页面动态生成树  回复  更多评论   

2006-08-16 19:40 by shaofan
最主要的部分是标签库,要用标签库来把要显示的数据转换成javascript所需要的形式,放到页面上。然后JAVASCRIPT才能正确显示出来。

只有注册用户登录后才能发表评论。


网站导航: