Only one ResultSet object per Statement object can be open at any point in time. Therefore, if the reading of one ResultSet object is interleaved with the reading of another, each must have been generated by different Statement objects. All statement execute methods implicitly close a statment's current ResultSet object if an open one exists.
Manager rrMgr=new Manager();
Manager subMgr = new Manager();
ResultSet rootRs=rrMgr.getRootMenu(id);
ResultSet subRs;
while(rootRs.next()){
subRs=subMgr.getSubMenu(id,rootRs.getInt(2));
while(subRs.next()){
Manager rrMgr=new Manager();
Manager subMgr = new Manager();
ResultSet rootRs=rrMgr.getRootMenu(id);
ResultSet subRs;
while(rootRs.next()){
subRs=subMgr.getSubMenu(id,rootRs.getInt(2));
while(subRs.next()){
因为我没用过Manager,只是给你提供一个思路。
myMenu.makeMenu('<%=subRs.getString(3)%>','<%=rootRs.getString(3)%>',' <%=subRs.getString(4)%>','<%=subRs.getString(6)%>+<%=subRs.getString(1)%>')
救命!