声明一些方法,和Java中一样
<%!String myfunc(String s){
  ....
  return x;
}%>调用时不需要call,直接方法名(参数)可以使用递归

解决方案 »

  1.   

    这样只能返回字符串,如果处理子过程,如下例,该怎样来解决呢?
    <%Call ListSubPower(rs("FolderID")) %>
    <%'子层数据处理子程序 
    Sub ListSubPower(id)
    '打开隶属于上层 powerid 的所有子层数据信息 
    set rs_sub=Server.CreateObject("ADODB.Recordset") 
    rs_sub.Open "select * from FileFolder where ReferencesID="&id&" order by FolderID",conn,1,3 
    '层次数表态变量递进累加 
    format_i=format_i+1
    response.Write("<div ID='Tree"&id&"cont"&id&"' STYLE='display:none'>")
    '列子层数据 
    do while not rs_sub.eof 
    '循环缩进格式控制,因为顶层与二层不需要缩进,所以从第三层开始引用此程序段 
    for i=format_i to 2 step -1 
    response.write "<IMG align='absMiddle' height='16' src='images/line.gif' width='16'>" 
    'response.write "&nbsp;" 
    next 
    '打印子层数据信息 
    response.Write("<img src='images/plus.gif' border='0' align='absMiddle'><img border='0' ID='Tree"&rs_sub("FolderID")&"Fldr"&rs_sub("FolderID")&"Second' src='images/folder.gif' align='absMiddle'>")
    response.write "&nbsp;<a href='#' target='_self'>"&rs_sub("FolderName")&"</a>" 
    response.write "<br>" 
    '递归调用子程序本身,对子层数据进行逐渐处理 
    ListSubPower(rs_sub("FolderID")) 
    rs_sub.movenext 
    loop 
    response.Write("</div>")
    '层次数表态变量递退累减 
    format_i=format_i-1 
    '关闭子层数据集 
    rs_sub.close 
    set rs_sub=nothing 
    End Sub 
    %>
      

  2.   

    你用JSP还是ASP啊?
    jsp也可以实现类似得功能,你只要把response传入这个函数就行了
      

  3.   

    是asp的形式,怎么样来转换成jsp的呢?response怎样做法呢?
      

  4.   

    你的程序太长了,不想看
    反正你把方法改为
    <%!
    public ListSubPower(String id, JspWriter out) {
     这里实现你的方法就行啦
    }
    %>
      

  5.   

    private void ListSubPower(int id){
    try{
    //打开隶属于上层 powerid 的所有子层数据信息 
    Statement stmt_sub=conn.createStatement(); 
    String query_sub="select * from FileFolder where ReferencesID="+id+" order by FolderID";
    ResultSet rs_sub=stmt_sub.executeQuery(query_sub);
    //层次数表态变量递进累加 
    format_i=format_i+1;
    out.println("<div ID='Tree"&id&"cont"&id&"' STYLE='display:none'>");
    //列子层数据 
    while (rs_sub.next()){
    int sub_FolderID=rs_sub.getInt("FolderID");
    String sub_FolderName=rs_sub.getString("FolderName");
    //循环缩进格式控制,因为顶层与二层不需要缩进,所以从第三层开始引用此程序段 
    for (int i=format_i; i>2;i--) {
    out.println ("<IMG align='absMiddle' height='16' src='images/line.gif' width='16'>") ;
    //out.println "+nbsp;" 
    }
    //打印子层数据信息 
    out.println("<img NAME='Tree"+sub_FolderID+"Fldr"+sub_FolderID+"' ID='Tree"+sub_FolderID+"' class='Folder"+sub_FolderID+"' onClick='tab("+sub_FolderID+")' src='images/plus.gif' border='0' align='absMiddle'><img border='0' ID='Tree"+sub_FolderID+"Fldr"+sub_FolderID+"Second' src='images/folder.gif' align='absMiddle'>");
    out.println ("nbsp;<a href='#' target='_self'>"+sub_FolderName+"</a>") ;
    out.println ("<br>") ;
    //递归调用子程序本身,对子层数据进行逐渐处理 
    //ListSubPower(int sub_FolderID) ;
    }
    out.println("</div>");
    //层次数表态变量递退累减 
    format_i=format_i-1 ;
    //关闭子层数据集 
    }catch(Exception e){
    System.out.println(e.getMessage());
    }}这样改写行不行呢?