如何实现无限级分类表~~

我现在在做一个项目。。要用到无限级分类表。。在数据表中有3个字段。一个ID parentID name,,请问我如何实现在页面上的select标签下显示这个列表啊。。
在网上还看到一种使用编码实现的。如一级分类001 002 二级分类001001 001002 002001 002002这个怎么实现。。他增加类型的时候代码也要增长。。请大家谁能告诉我啊。。急切盼望热心人。。。
有谁会的希望加下我QQ:969994489

[b]问题补充:[/b]
不用ajax。。本人没学过。。现在急需完成这功能。。有谁会的加一下我QQ。。或者留下QQ。。不甚感激。。

那就用javascript 数组了,
将数据放在request 再到 jsp 生成 javavscript 数组.

我不建议这样做,这样parentID 会无效长
[quote]在网上还看到一种使用编码实现的。如一级分类001 002 二级分类001001 001002 002001 002002这个怎么实现[/quote]

我的方案

ID parentID name

如果是一级分类 parentID 为0

如果是二,三 ....级分类 parentID 为他的父类ID就是了

请问我如何实现在页面上的select标签下显示这个列表啊

用ajax 啊 首先列出一级分类,再根据选择的父类去加载子类(parentID)(ajax)

无限级分类设计--纯数据库实现
[url]http://www.cnblogs.com/aaronlive/archive/2009/02/07/1386023.html[/url]
无限级分类的实现
[url]http://www.amuhouse.com/blog/article.asp?id=196[/url]
主题:使用hibernate实现树形结构无限级分类
[url]http://www.iteye.com/topic/29482[/url]

要求页面刷新吗

[code="java"]
//看看这个表结构

CREATE TABLE XXX_SORT (

ID varchar(32) NOT NULL,

NAME varchar(200) default NULL,

LEVEL int(3) default NULL,

PARENT varchar(32) default NULL,

VERSION int(11) default NULL,

RELATING varchar(32) default NULL,

PRIMARY KEY (ID),

KEY FKEEDFA58BF12BBBC8 (PARENT)

) ENGINE=MyISAM DEFAULT CHARSET=utf8

[/code]

这里是对应的pojo

[code="java"]

SuppressWarnings({"serial","unused"})
@Entity
@Table(name="XXX_SORT")
public class FilterSort extends IdentifiableEntity {

private String name;
private Integer level;
private FilterSort parent;
private Integer version;
private String relating;

private Set<FilterSort> children = new HashSet<FilterSort>();



@OneToMany(mappedBy="parent" , cascade= CascadeType.ALL , fetch= FetchType.LAZY)
@OrderBy(value = "id ASC")
public Set<FilterSort> getChildren() {
    return children;
}

public void setChildren(Set<FilterSort> children) {
    this.children = children;
}

@Column(name="NAME",nullable=true)
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

@ManyToOne(cascade = CascadeType.REFRESH,optional=true)
@JoinColumn(name="PARENT")
public FilterSort getParent() {
    return parent;
}

public void setParent(FilterSort parent) {
    this.parent = parent;
}

@Column(name = "RELATING", nullable = false)
public String getRelating() {
    return relating;
}

public void setRelating(String relating) {
    this.relating = relating;
}

@Column(name="LEVEL" , nullable=false)
public Integer getLevel() {
    return level;
}

public void setLevel(Integer level) {
    this.level = level;
}


@Version
public Integer getVersion() {
    return version;
}

public void setVersion(Integer version) {
    this.version = version;
}

}

[/code]