请问如何在Jsp中实现树型结构

时间:2021-01-30 11:55:54
请问如何在Jsp中实现树型结构,也就是说从数据库中提出数据按类别显示,就像资源管理器那种方式,前面还有加号的,一点击就列出其中包含的数据。
    请有经验的朋友给指点一下,谢谢了! 我的邮箱:sspazy@163.com

7 个解决方案

#1


这个网上有asp的代码,数据库你可以参考这个

#2


我想要JSP代码,请朋友们帮忙...........

#3


这个供你参考试试!

<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*" %>
<%@ page session="true" %>
<jsp:useBean id="db" scope="page" class="oa.db.opendb" />   连接数据库
<html>
<head>
<title></title>
<SCRIPT language=JavaScript src="tool/xtree.js">
</SCRIPT>
<SCRIPT language=JavaScript>
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
<link href="css/default.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
@import url("css/default.css");
-->
</style>
<style type="text/css">
<!--
@import url("css/default.css");
-->
</style>
</head>
<body bgcolor="#DEF3CE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
<br>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <TR  width="100%">
          <TD ><strong><font color="black">&nbsp; &nbsp; &nbsp;ERP-OA&#1013;&#883;</font></strong></TD>
        </TR>
        <TR  width="100%">
          <TD >&nbsp;</TD>
        </TR>
<%
String main_id,aaa,aaaa,aaaaa;
String sql="select * from main_menu ";     //第一层菜单表
    ResultSet rs=db.execQuery(sql);
if(rs!=null)
{
int i=1;
while(rs.next())
{
                main_id=rs.getString("id");
aaa="KB"+i+"Parent";
aaaa="'KB"+i+"'";
aaaaa="KB"+i+"Child";
%>
      <TR  width="100%">
      <TD class="a5"> <DIV class=parent id=<%=aaa%> width="100%">
  <A href="" target="show" onclick="expandIt('KB<%=i%>');
 return false">&nbsp;&nbsp;&nbsp;&nbsp;<IMG align=absMiddle border=0
      height=18 src="images/xtarrow.gif" width=20></A>
<span class="a4"><font size=2 color="#000000">
<strong><%=rs.getString("menu_name")%></strong></font></span></DIV></TD>
     </TR> 
<TR width="100%">
          <TD class="a5"> <DIV class=child id=<%=aaaaa%> width="100%">
<%
String sqlchild="select * from sub_menu where main_menu_id='"+main_id+"'";  //第二层菜单表
ResultSet rschild=db.execQuery(sqlchild);
if(rschild!=null)
{
int j=1;
while(rschild.next()) {
%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<IMG align=absMiddle border=0 height=18 src="images/xtsub.gif" width=18>   //节点图片
<a href=<%=rschild.getString("sub_link")%> target="show">
<font size=2 ><%=rschild.getString("sub_name")%></font></a><BR>
<%
j++;
}
}else{
%>
 ---------<BR>
<%
}
rschild.close();
%>
 
 </DIV></TD>
 </TR>
<%
        i++;
}
}else{
%>
----
<%
}
        rs.close();
%>
 </table> 
</body>
</html>

菜单数据库如下

main_menu表

id          自动编号
menu_name   字符        第一层菜单名称
menu_link    字符         连接
menu_memo  字符         菜单说明

sub_menu表

id            自动编号
main_menu_id   字符      对应main_menu表中的id
sub_name       字符      第二层菜单名称
sub_link        字符      菜单连接文件名称 

#4


用js的xtree, 或者xloadtree(异步的tree)改造一下:

http://blog.csdn.net/lcllcl987/archive/2005/06/16/395992.aspx

#5


lcllcl987(毛爷爷) :
   能否把您程序中的js文件(xtree)能公布一下呢

#6


fzlotuscn(无为一本):
     非常感谢您提供的这段程序,但是按你的方法做完之后,出现如下错误提示,还请再次指教!
**************************************

数据库连接成功!

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.

javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.

#7


自己找错误吧

因为只有这样才有可能提高自己的水平

我不认为这个树是优秀的

因为并不支持多级的

http://community.csdn.net/Expert/topic/5153/5153360.xml?temp=.3642542

这个里面有我所想的树的结构

但是缺点也很严重的

数据库设计为

id 目录名 上级目录ID 序号

其中上级目录ID是用来记录该节点的父节点的

而序号是用来在同级内进行排序的




#1


这个网上有asp的代码,数据库你可以参考这个

#2


我想要JSP代码,请朋友们帮忙...........

#3


这个供你参考试试!

<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*" %>
<%@ page session="true" %>
<jsp:useBean id="db" scope="page" class="oa.db.opendb" />   连接数据库
<html>
<head>
<title></title>
<SCRIPT language=JavaScript src="tool/xtree.js">
</SCRIPT>
<SCRIPT language=JavaScript>
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
<link href="css/default.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
@import url("css/default.css");
-->
</style>
<style type="text/css">
<!--
@import url("css/default.css");
-->
</style>
</head>
<body bgcolor="#DEF3CE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
<br>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <TR  width="100%">
          <TD ><strong><font color="black">&nbsp; &nbsp; &nbsp;ERP-OA&#1013;&#883;</font></strong></TD>
        </TR>
        <TR  width="100%">
          <TD >&nbsp;</TD>
        </TR>
<%
String main_id,aaa,aaaa,aaaaa;
String sql="select * from main_menu ";     //第一层菜单表
    ResultSet rs=db.execQuery(sql);
if(rs!=null)
{
int i=1;
while(rs.next())
{
                main_id=rs.getString("id");
aaa="KB"+i+"Parent";
aaaa="'KB"+i+"'";
aaaaa="KB"+i+"Child";
%>
      <TR  width="100%">
      <TD class="a5"> <DIV class=parent id=<%=aaa%> width="100%">
  <A href="" target="show" onclick="expandIt('KB<%=i%>');
 return false">&nbsp;&nbsp;&nbsp;&nbsp;<IMG align=absMiddle border=0
      height=18 src="images/xtarrow.gif" width=20></A>
<span class="a4"><font size=2 color="#000000">
<strong><%=rs.getString("menu_name")%></strong></font></span></DIV></TD>
     </TR> 
<TR width="100%">
          <TD class="a5"> <DIV class=child id=<%=aaaaa%> width="100%">
<%
String sqlchild="select * from sub_menu where main_menu_id='"+main_id+"'";  //第二层菜单表
ResultSet rschild=db.execQuery(sqlchild);
if(rschild!=null)
{
int j=1;
while(rschild.next()) {
%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<IMG align=absMiddle border=0 height=18 src="images/xtsub.gif" width=18>   //节点图片
<a href=<%=rschild.getString("sub_link")%> target="show">
<font size=2 ><%=rschild.getString("sub_name")%></font></a><BR>
<%
j++;
}
}else{
%>
 ---------<BR>
<%
}
rschild.close();
%>
 
 </DIV></TD>
 </TR>
<%
        i++;
}
}else{
%>
----
<%
}
        rs.close();
%>
 </table> 
</body>
</html>

菜单数据库如下

main_menu表

id          自动编号
menu_name   字符        第一层菜单名称
menu_link    字符         连接
menu_memo  字符         菜单说明

sub_menu表

id            自动编号
main_menu_id   字符      对应main_menu表中的id
sub_name       字符      第二层菜单名称
sub_link        字符      菜单连接文件名称 

#4


用js的xtree, 或者xloadtree(异步的tree)改造一下:

http://blog.csdn.net/lcllcl987/archive/2005/06/16/395992.aspx

#5


lcllcl987(毛爷爷) :
   能否把您程序中的js文件(xtree)能公布一下呢

#6


fzlotuscn(无为一本):
     非常感谢您提供的这段程序,但是按你的方法做完之后,出现如下错误提示,还请再次指教!
**************************************

数据库连接成功!

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.

javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.

#7


自己找错误吧

因为只有这样才有可能提高自己的水平

我不认为这个树是优秀的

因为并不支持多级的

http://community.csdn.net/Expert/topic/5153/5153360.xml?temp=.3642542

这个里面有我所想的树的结构

但是缺点也很严重的

数据库设计为

id 目录名 上级目录ID 序号

其中上级目录ID是用来记录该节点的父节点的

而序号是用来在同级内进行排序的




相关文章