解决方案 »

  1.   

    这个估计不太行,item1是否包含在 角色权限列表里 这个估计要用jstl/functions 标签库才可以实现。不过一般都不这么做,都在后台处理,在后台处理,只拿到对应权限的菜单,jsp直接遍历显示,而不在前台做权限判断
      

  2.   


    后台能拿到角色对应的权限菜单(相当于<c:forEach items="${account.getRole().getPermissions()}" var="item">),但不知道怎么写,不知道怎么把一级、二级细分输出(这段完全不知道怎么表达,大概意思就是后台不知道怎么写)//获取该角色所有权限列表
    List<Permission> p1 =  r1.getPermissions();p1这个list就包含这个角色所有一级和二级菜单,但后面完全不知道如何去写了,大神帮个忙,搞了很久都没头绪
      

  3.   

        <c:forEach items="${account.getRole().getPermissions()}" var="item">  //这里的item就用你的p1就可以了啊。p1就是你所有的菜单了吧,不包含的菜单应该都没有            <a href="#">
                    <i class="${item.itemIcon}"></i>
                    <span>${item.name}</span>
                </a>
                
                <!-- 遍历这个一级菜单下面的所有二级菜单 -->
                <c:forEach items="${item.children}" var="item1">
                 <!-- 判断这些二级菜单是否包含在 角色权限 表里面-->             <ul class="sub">
                 <li><a href="#">${item1.name}</a></li>
             </ul>
                </c:forEach>
       </c:forEach>
      

  4.   

    角色权限表里未必包含这些二级菜单 ,需要在后后台获取到List<Permission> p1 =  r1.getPermissions();,然后把二级菜单也加进去啊,然后就可以了啊,要不然在前台判断太麻烦了
      

  5.   


    先谢谢兄弟你了
     
    我解释一下:p1的菜单就是角色所有权限,包括一级和二级,我之前的前台判断是只判断一级菜单,但是因为我的数据库菜单表,所有一级二级菜单的关系都关联好了,所以我才会说通过一级菜单获取下面所有二级菜单,再判断这个二级菜单 list里面是否包含角色里面的二级菜单,是则输出,不是则不输出(可能表达不是很好,这里我并未处理p1里面的二级菜单)我现在没有在前台判断,直接在后台重构了一个权限实体,只包含角色有的一级和二级,前台直接输出即可。但因为是用多个循环迭代来判断,效率不是很好,很苦恼不知道怎么后台做才好