这是我在网上找的,自己修改了一点,如何修改才能实现从数据库取得节点数据的的无限级目录树呢?我的项目是文件共享系统。或者哪位高手有现成的可以发给我吗,邮箱[email protected] ,急用,谢谢tree.htmlvar tree = new WebFXTree("ROOT");
tree.add(new WebFXLoadTreeItem("user", "filetree.jsp"));
document.write(tree);
filetree.jspresponse.setContentType("text/xml");
out.clear();
out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.println("<tree>");
FileDAO dao = new FileDAOImpl();
List tree = dao.ListFile();
for(int i = 0; i < tree.size(); i++){FileVO vo = (FileVO)tree.get(i);
out.println("<tree text='" + vo.getFile_name() + "' src='subtree.jsp?id="+vo.getFile_id()+"' />");
}
out.println("</tree>");
subtree.jspString id=request.getParameter("id");
int pid=Integer.parseInt(id);
response.setContentType("text/xml");
out.clear();
out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.println("<tree>");
FileDAO dao = new FileDAOImpl();
List tree = dao.SubFile(pid);
for(int i=0;i < tree.size();i++){FileVO vo = (FileVO)tree.get(i);
out.println("<tree text='" + vo.getFile_name() + "' />");
}
out.println("</tree>");
FileDAOImpl.javapublic List ListFile() throws Exception { Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
ArrayList list=new ArrayList();
String sql=" select * from t_file ";
try
{
conn=DBConnection.getConnection();
stmt=conn.prepareStatement(sql);
rs=stmt.executeQuery();
while(rs.next())
{
FileVO vo=new FileVO();
vo.setFile_id(rs.getInt("file_id"));
vo.setFile_name(rs.getString("file_name"));
vo.setParent_id(rs.getInt("parent_id"));
list.add(vo);
}
}
catch(Exception e)
{
e.printStackTrace();
}
return list;
} public List SubFile(int parent_id) throws Exception { Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
ArrayList list=new ArrayList();
String sql=" select * from t_file where parent_id="+parent_id ;
try
{
conn=DBConnection.getConnection();
stmt=conn.prepareStatement(sql);
rs=stmt.executeQuery();
while(rs.next())
{
FileVO vo=new FileVO();
vo.setFile_id(rs.getInt("file_id"));
vo.setFile_name(rs.getString("file_name"));
vo.setParent_id(rs.getInt("parent_id"));
list.add(vo);
}
}
catch(Exception e)
{
e.printStackTrace();
}
return list;
}
tree.add(new WebFXLoadTreeItem("user", "filetree.jsp"));
document.write(tree);
filetree.jspresponse.setContentType("text/xml");
out.clear();
out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.println("<tree>");
FileDAO dao = new FileDAOImpl();
List tree = dao.ListFile();
for(int i = 0; i < tree.size(); i++){FileVO vo = (FileVO)tree.get(i);
out.println("<tree text='" + vo.getFile_name() + "' src='subtree.jsp?id="+vo.getFile_id()+"' />");
}
out.println("</tree>");
subtree.jspString id=request.getParameter("id");
int pid=Integer.parseInt(id);
response.setContentType("text/xml");
out.clear();
out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.println("<tree>");
FileDAO dao = new FileDAOImpl();
List tree = dao.SubFile(pid);
for(int i=0;i < tree.size();i++){FileVO vo = (FileVO)tree.get(i);
out.println("<tree text='" + vo.getFile_name() + "' />");
}
out.println("</tree>");
FileDAOImpl.javapublic List ListFile() throws Exception { Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
ArrayList list=new ArrayList();
String sql=" select * from t_file ";
try
{
conn=DBConnection.getConnection();
stmt=conn.prepareStatement(sql);
rs=stmt.executeQuery();
while(rs.next())
{
FileVO vo=new FileVO();
vo.setFile_id(rs.getInt("file_id"));
vo.setFile_name(rs.getString("file_name"));
vo.setParent_id(rs.getInt("parent_id"));
list.add(vo);
}
}
catch(Exception e)
{
e.printStackTrace();
}
return list;
} public List SubFile(int parent_id) throws Exception { Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
ArrayList list=new ArrayList();
String sql=" select * from t_file where parent_id="+parent_id ;
try
{
conn=DBConnection.getConnection();
stmt=conn.prepareStatement(sql);
rs=stmt.executeQuery();
while(rs.next())
{
FileVO vo=new FileVO();
vo.setFile_id(rs.getInt("file_id"));
vo.setFile_name(rs.getString("file_name"));
vo.setParent_id(rs.getInt("parent_id"));
list.add(vo);
}
}
catch(Exception e)
{
e.printStackTrace();
}
return list;
}
if(n==1){
return 1;
}else{
return n*recursion(n-1);
}
}