本人用dtree做成了一棵动态树,
  步骤1.pojo类
package com.gdcn.admin;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;import org.apache.log4j.Logger;import com.gdcn.database.ConnectionManager;public class Group {
private static Logger logger = Logger.getLogger(Group.class);

private long groupID = -1;
private String groupName;
private int typeID;
private int orderID;
private int groupLayer;
private long parentID = -1;
private int isUse;

public long getGroupID() {
return groupID;
}
public void setGroupID(long groupID) {
this.groupID = groupID;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public int getTypeID() {
return typeID;
}
public void setTypeID(int typeID) {
this.typeID = typeID;
}
public int getOrderID() {
return orderID;
}
public void setOrderID(int orderID) {
this.orderID = orderID;
}
public int getGroupLayer() {
return groupLayer;
}
public void setGroupLayer(int groupLayer) {
this.groupLayer = groupLayer;
}
public long getParentID() {
return parentID;
}
public void setParentID(long parentID) {
this.parentID = parentID;
}
public int getIsUse() {
return isUse;
}
public void setIsUse(int isUse) {
this.isUse = isUse;
}
public Group() {

}
2.业务类,可以测试生成的结构package com.gdcn.admin;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import org.apache.log4j.Logger;import com.gdcn.database.ConnectionManager;public class GroupImpl {
private static Logger logger = Logger.getLogger(GroupImpl.class);


public static List retrieveNodeInfos(){
List list = new ArrayList();
Connection conn = null ;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
conn = ConnectionManager.getConnection();
String sql = "select * FROM tgroup WHERE isuse=1";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs!=null && rs.next()){
Group group = new Group();
int i =1;
    group.setGroupID(rs.getLong(i++));
    group.setGroupName(rs.getString(i++));
    group.setTypeID(rs.getInt(i++));
    group.setOrderID(rs.getInt(i++));
    group.setGroupLayer(rs.getInt(i++));
    group.setParentID(rs.getLong(i++));
    list.add(group);
}  
}catch(Exception e){
System.out.println(e);
logger.error(e);
}finally {
ConnectionManager.closeObject(conn, pstmt, rs);
}
return list;
}

public static String createTreeInfo(List alist){
    StringBuffer contents = new StringBuffer();
    contents.append("<script type=\"text/javascript\">\n");
contents.append("d = new dTree('d');\n");
Group group =null;
for(int max = alist.size(),i=0;i<max;i++){
 group = (Group)alist.get(i);
 contents.append("d.add("+group.getGroupID()+",");
 contents.append(group.getParentID()+",");
 contents.append("'"+group.getGroupName()+"',");
 contents.append("\"group2.jsp?groupID="+group.getGroupID()+"\",\"\",\"group2\"");
 contents.append(");\n");
 
}
contents.append("document.write(d);\n");
contents.append("</script>");
return contents.toString();
   }
   public String getMenuJS(){
   List list = GroupImpl.retrieveNodeInfos();
   String js = GroupImpl.createTreeInfo(list);
   return js;
   }
   public static void main(String[] args) {
   List list = GroupImpl.retrieveNodeInfos();
   System.out.println(GroupImpl.createTreeInfo(list));
   }
}

解决方案 »

  1.   

    3.jsp
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <%@ page contentType="text/html; charset=GBK" language="java"%>
    <%@ page import="com.gdcn.admin.*"%>
    <html>
    <head>
    <title>Tree</title>
    <link rel="StyleSheet" href="dtree.css" type="text/css" />
    <script type="text/javascript" src="dtree.js"></script>
    </head>
    <body>

    <div class='dtree'>
                 <%
    GroupImpl gl = new GroupImpl();
    out.println(gl.getMenuJS());
    %>

             </div>


    </body>
    </html>4,请求高手指点下,在jsp里创建子节点,移动子节点的 代码