小弟初用struts-menu做动态菜单实现角色权限控制,现在菜单显示一切正常,但菜单显示顺序不能达到预期的结果,如:
预期结果:
 ----menu1
      --menu1's item1
      --menu1's item2
      --menu1's item3
      --menu1's item4
 --menu2
      --menu2's item1
      --menu2's item2
      --menu2's item3
      --menu2's item4
........
页面实际显示:
--menu2
      --menu2's item1
      --menu2's item2
      --menu2's item3
      --menu2's item4
 ----menu1
      --menu1's item1
      --menu1's item2
      --menu1's item3
      --menu1's item4
 ........struts-menu中很重要的一个类是MenuRepository,用来保存菜单项数据的, 在Action里菜单顺序是正确的,但在页面就变了,这是我的页面取值方式:
<%@ taglib uri="/WEB-INF/struts-menu.tld" prefix="menu" %>
<%@ taglib uri="/WEB-INF/struts-menu-el.tld" prefix="menu-el"%>
<link rel="stylesheet" type="text/css" media="screen" href="${pageScope.path}/common/css/menuExpandable.css" />
<script type="text/javascript" src="${pageScope.path}/common/js/menuExpandable.js "></script>
<menu:useMenuDisplayer name="ListMenu" repository="repository">
<c:forEach var="menu" items="${repository.topMenus}">
<menu-el:displayMenu name="${menu.name}" />
                                      
</c:forEach>
</menu:useMenuDisplayer>
${menu.name}就是权限code,alert一下并不与action中list集合中保存的权限code一致
我想是hash算法的原因,但在Action中并没有采用hashset 或 hashmap。我看了一下struts-menu 的源码,看了很长时间却没有看明白,google了一下,有人说是struts-menu本身没有提供排序的功能,不知道是不是。我用的struts-menu版本是v 2.3的。
小弟初到csdn,还没有积分,恳求热心人指点,在此先谢过了。