在jsp中有没有子过程,函数呢? 声明一些方法,和Java中一样<%!String myfunc(String s){ .... return x;}%>调用时不需要call,直接方法名(参数)可以使用递归 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样只能返回字符串,如果处理子过程,如下例,该怎样来解决呢?<%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+1response.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 " " 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 " <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 %> 你用JSP还是ASP啊?jsp也可以实现类似得功能,你只要把response传入这个函数就行了 是asp的形式,怎么样来转换成jsp的呢?response怎样做法呢? 你的程序太长了,不想看反正你把方法改为<%!public ListSubPower(String id, JspWriter out) { 这里实现你的方法就行啦}%> 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());}}这样改写行不行呢? Hibernate4中使用C3P0连接池,总是出现Operation not allowed或者Last packet received的错误 如何在运行jsp之前就运行类文件 谁能给提供关于ServLet的视频教程的下载 求教,怎么解决文件上传同名覆盖和文件大小限制?我用的是jspSmartUpLoad 一个编译的问题 不知道 为什么 请大虾给指点一下 在线等 再问个菜鸟问题吧。 想问下页面刷新的问题 mybatis sql server 分页 变量如何传递? jsp如何实现刷新某页??? servlet中如何定时执行程序?在线等候,马上给分。 如何显示session内容?
<%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 " "
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 " <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
%>
jsp也可以实现类似得功能,你只要把response传入这个函数就行了
反正你把方法改为
<%!
public ListSubPower(String id, JspWriter out) {
这里实现你的方法就行啦
}
%>
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());
}}这样改写行不行呢?