求教:dTree菜单显示顺序如何控制

为什么我的dtree菜单显示顺序每次都不一样呢,郁闷。。。

我用的hibernate和struts2,在后台通过操作员把其所具有的菜单都从数据库中查出来了,送到jsp页面通过dtree来显示树状菜单。菜单数目查询正确,但问题是在前台展示的时候每次都不一样??不知道为什么,急求高手指点

Action中实现如下:
			//获取该操作员的所有菜单
			Set menus = oper.getRole().getPrivleges();
			Iterator tree = menus.iterator();
			
			while(tree.hasNext()) {
				Menu m = (Menu)tree.next();
				treeList.add(m);
			}
		}		
		log.info("********menu list size=["+treeList.size()+"]");
		request.setAttribute(Constants.MENU_OF_OPERATOR, treeList);//把操作员所具有的菜单传到页面


Jsp页面代码如下:
d = new dTree('d'); 
d.add ( 0 ,-1 ,'Main','welcome.action'); 

<%
	ArrayList menuList = (ArrayList)request.getAttribute(Constants.MENU_OF_OPERATOR);
	if(null != menuList && menuList.size() > 0){
		for(int i = 0; i < menuList.size(); i++){
		Menu tree = (Menu)menuList.get(i);
		String url = "";
		if((null != tree.getUrl()) && (!"null".equals(tree.getUrl()))){
			url = tree.getUrl();
		}
%>
d.add(<%=tree.getPrivilegeOrder()%>, <%=tree.getParentPOrder()%>,'<%=tree.getPrivilegeName()%>','<%=url%>');
<%
		}//end for
	}//end if
%>
document.write (d);


有些菜单就是不显示,通过查看源文件发现添加父子菜单顺序反了,比如,先add子菜单再添加的父菜单,那么子菜单就不能显示了,但不知道是什么原因,望高手指点迷津。。。。

你可能感兴趣的:(jsp,Hibernate)