这样吧,可否不使用递归也可以实现以上目录树的结构!!!我的代码是
<%!
String sId;
String sName;
String sTemp;
ResultSet rset=null;
int iCount=0;
int iLen = 0;
int iLength = 3;
int iLens=3;
%>
<div>
<span><input type=checkbox>企业</span>
<UL id=root>
<%
  rset=conn.executequery("select * from tree  order by id");
//主目录信息
  while (rset.next())
  {
       sId = rset.getString("id");
       iLen = sId.length();
       sName=rset.getString("name");
       ResultSet rs = conn.executequery("select count(*) as icount from tree where id like: '"+sId+"%'");
      if(rs.next())  iCount = rs.getInt("icount");//得到是否有下级目录
       if(iCount==1)
        {
%>
            <LI><span><input type=checkbox value=<%=sId%>> <%=sName%></span>
<%
        }
      if((iCount>1)&&((iLength-iLen==0)||(iLen % iLength==0)))
       {
%>
         <LI><span><input type=checkbox value=<%=sId%>> <%=sName%></span>
         <UL>
<%
       }
       if(iLen-iLens<0)
       {
%>
         </UL><%
       }   iLens = iLen;
  }
%>
</UL>
</div>
但是在没有子目录情况下就会出错!!如何更改?或者有更好的解决办法

解决方案 »

  1.   

    我没有看完你的所有程序。就针对你的“但是在没有子目录情况下就会出错”看出问题。

    int iCount=0;
    放到下面的位置
    ResultSet rs = conn.executequery("select count(*) as icount from tree where id like: '"+sId+"%'");
    int iCount=0;
    if(rs.next()) iCount = rs.getInt("icount");//得到是否有下级目录
      

  2.   

    感谢你给予大家支持!!!!问题解决了  happyegg(想转型的程序员)给我信息所说:这个问题根本不值这个分数,不需要拿这么多分数,希望给大家云云!  回想起来可真的让人很遗憾:这么简单的问题(最终他解决方法很简单明了,关键我是新接触JAVA,不是很懂)却出现如此局面:看到分数多而且用递归,造成无人解决,我只好到别的讨论模块找人解决;让人很不解。是什么原因造成的?不懂!................  550分他当之无愧!不是这个问题不值。而是一个人的挑战精神:不去用指定的框框解决问题:我要求使用递归,而你却用其他方法解决!让人真的很高兴。其余的人就算有意见我也坚持:550分照给:你值!!!!!!!!!  希望大家从这个问题当中学到什么..................................
      同时,请真正认识kw123的作风:说到做到;只要你行!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!