http://www.csdn.net/expert/topic/723/723099.xml?temp=.3773004思路:先取出所有下拉的数据。用以上的方法级联。
取数据如:
<%
//============主菜单========== ;
Iterator mainMenu =  menuControl.getMainMenu().iterator() ;
mainMenu =  menuControl.getMainMenu().iterator() ;
while(mainMenu.hasNext()){
menu = (Menu)mainMenu.next() ;
out.print("menu.AddExtendMenu(\"mainMenu_"+menu.getMenuId()+"\",\"xp/start_pro\",\"24\",\""+menu.getName()+"\",\"rbpm\",null) ;") ;
out.print("\n") ;
}//============一级子菜单==========
mainMenu =  menuControl.getMainMenu().iterator() ;
subMenu =  menuControl.getSubMenu().iterator() ;
while(subMenu.hasNext() && mainMenu.hasNext()){
//============一级菜单========= ;
Iterator iterSub = ((List)subMenu.next()).iterator() ;
Menu mMenu = (Menu)mainMenu.next() ;
while(iterSub.hasNext()){
menu = (Menu)iterSub.next() ;
out.print("menu.AddExtendMenu(\"subMenu_"+menu.getMenuId()+"\",\"folder\",\"16\",\""+menu.getName()+"\",\"mainMenu_"+mMenu.getMenuId()+"\",null) ;") ;
out.print("\n") ;
}
}//============二级子菜单========== 
menuControl.setMenuItem(3) ;
subMenu =  menuControl.getSubMenu().iterator() ;
Iterator menuItem =  menuControl.getMenuItem().iterator() ;
while(menuItem.hasNext() && subMenu.hasNext()){
Iterator iter = ((List)menuItem.next()).iterator() ;
Iterator iterSub = ((List)subMenu.next()).iterator() ;
while(iter.hasNext() && iterSub.hasNext()){
         Iterator iterItem = ((List)iter.next()).iterator() ;
  Menu sMenu = (Menu)iterSub.next() ;
      while(iterItem.hasNext()){
menu = (Menu)iterItem.next() ;
  out.print("menu.AddItem(\"menuItem_"+menu.getMenuId()+"\",\"html\",\"16\",\""+menu.getName()+"\",\"subMenu_"+sMenu.getMenuId()+"\",\""+menu.getProgramPath()+"\") ;") ;
out.print("\n") ;
}
}
}%>