jsp动态树的生成

本文介绍了如何在JSP中动态生成树结构,包括关键类如TreeNote、TreeBuilder和ShowTree的作用和实现,强调了节点的location属性在构建父子关系中的重要性,并提供了示例代码。此外,还提到了在页面中展示树结构所需的JavaScript和CSS代码。
摘要由CSDN通过智能技术生成
导读:
已经有两个人问过我这个问题了。所以我还是把我做的这个东西总结一下。放上来,一来方便了自己,也方便了他人。我不反对你把代码那里使用,但是希望你能保留作者。:)谢谢。

树的动态生成和一般的静态书是不一样的。因为动态树中所有的结点或者部分节点不是固定的,可能会随时随着数据库中或者文件中的数据而动态的变动。对于一般的静态树,我们只需要在jsp页面中包含js代码就可以了。那么动态树就需要javabean的支持了。

主要文件
TreeNote.java :树的结点类。
TreeBuilder.java :树的构造器。
ShowTree.java :为了减少页面中的java语句,我们在这里构造生成树需要的html代码。
BuildyourTree.java :在这里构造你的树。你也可以写自己的方法,这里只是个例子。

下面一个一个文件的来看:
TreeNote.java
package cn.edu.ouc.jwc.zysb.tree;
import java.util.*;
import cn.edu.ouc.jwc.util.*;
/**
*
/**
* 节点的Id,生成对象时此Id会被自动生成.
*/
private String Id = null;
/**
* 描述节点在树中的位置.必须准许一定的格式.其格式规则如下:
* 1.根节点值为"root";
* 2.其他节点的值为"root secondLevelparameter thirdLevelParameter ... thisLevelParameter".
* 举例我要添加专业节点其location内容如下: "root yh zhuanye",其中yh为这个专业所属院的parameter,zhuanye为本专业的parameter.
*/
private String location = null;
/**
* 节点名字.要显示在页面上的东东.就是每个节点上显示的名字.
*/
private String name = null;
/**
* 每个节点对应的URL.
*/
private String URL = null;
/**
* 也就是本层的参数,代表本层,将要添加到location的末尾中.
*/
private String parameter = null;
/**
* 容器包装其所有的孩子节点.
*/
private ArrayList children = new ArrayList();
public TreeNote() {
Id = IDGenerator.getID();
}
public TreeNote(int seed) {
Id = IDGenerator.getID(seed);
}
public TreeNote(String name) {
Id = IDGenerator.getID();
this.name = name;
}
public TreeNote(String name, int seed) {
Id = IDGenerator.getID(seed);
this.name = name;
}
public String getId() {
return Id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getURL() {
return URL;
}
public void setURL(String URL) {
this.URL = URL;
}
public void setLocation(String location) {
this.location = location;
}
public String getLocation() {
return location;
}
public ArrayList getChildren() {
return children;
}
public void setChildren(ArrayList children) {
this.children = children;
}
public String getParameter() {
return parameter;
}
public void setParameter(String parameter) {
this.parameter = parameter;
}
/**
* 返回孩子的数目.
*
* @return 孩子的数目,无孩子为"0".
*/
public int getChildNum() {
return children.size();
}
/**
* 增加一个孩子.
*
* @param child TreeNote.
*/
public void addChild(TreeNote child) {
children.add(child);
}
/**
* 根据索引得到一个孩子.
*
* @param index 从"0"开始的索引."0"代表第一个孩子.
* @return TreeNote
*/
public TreeNote getChild(int index) {
return (TreeNote) children.get(index);
}
}

Title: 教务处工程-专业识别
*
*
Description:树的节点对象
*
*
Copyright: Copyright (c) 2004
*
*
Company: 中国海洋大学教务处
*
*
创建日期: 2004.4.17
*
*
修改日期: 2004.4.17
* @author IPlinger
* @version 1.0
*/
public class TreeNote {

注释我应该已经写的很清楚了,自己看吧。其中需要一个IDGenerator.getID()的辅助方法ID产生器,这里我给出这个源码,当然你也可以自己写呀

IDGenerator.java
package cn.edu.ouc.jwc.util;
import java.net.*;
/**
*
/**
* a single static metod which generates a unique id ba
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值