日期:2014-05-18  浏览次数:20727 次

菜单显示
菜单分3层,编号格式如下:
        DW0104   --DW010401--DW01040101
                                          --DW01040102
                      --DW010402--DW01040201
                                          --DW01040202    
用户登陆后,取出他的相应权限,判断包含哪些菜单的编号,并进行显示.现在第一层与第三层都能正确显示,但是第二层必须包含第一个子菜单才能正常显示(比如说权限里有DW0104,这时如果有DW010401,不管有无DW010402都能正确显示,但是如果只包含DW010402,不包含DW010401则什么都不显示,第一层和第三层都不存在这个问题),我用控制台输出内容都正确,但是在程序里就是不显示,请问是什么原因?   我程序里的大体思路是:先取出所有第一层菜单,与权限进行比较,如果权限包含该层菜单,则显示该层,再取该层下的第二层菜单,与权限判断,如果包含,显示该层,再取该层下的第三层菜单...请帮我分析下思路哪里有问题,谢谢

------解决方案--------------------
还是程序的逻辑问题了,正常讲是没问题的。
只把那一部分的代码粘出来。
------解决方案--------------------
估计是菜单的层次关系:
DW0104 和DW010401 连接的
你有DW010402没DW010401的时候,这时要DW0104 和DW010402 连接的

看是不是这个原因
------解决方案--------------------
没看清楚,不过建议一下,
把权限判断
//判断用户权限里包含哪些2及菜单
if(userOBs.indexOf(menuarr[i].getId()) != -1)
{
放在menuframe.getMenus这样的方法里面,直接得到当前用户可用菜单项,在页面输出.