我正在使用spring MVC 4并在我的主页中配置菜单,该菜单将根据我定义的角色显示。所以在我的menu-config.xml中,我定义为
<Menu name="Company" title="menu.companyTitle" page="/xxx/yyy/zzzz">
<Item name="NewCompanyRequest" roles="ROLE_ADMIN,ROLE_USER" title="menu.NewCompanyRequest" page="/admin/companyRequestList" />
<Item name="editCompanies" roles="ROLE_ADMIN" title="menu.editCompanies" page="/xx/yyy/ccc" />
</menu>
<Menu name="Exchaged" title="menu.admin.aboutCompany" page="/exchaged" roles="ROLE_ADMIN,ROLE_USER"/>
表示以上项目名称 editCompanies 仅对ADMIN用户可见,并且工作正常,但在用户界面中,它会干扰下一个菜单已交换并引入一个。
我已经尝试了一些步骤但是没有找到解决办法。
答案 0 :(得分:1)
首先,您为<Menu>
标记使用了错误的结束标记。我已经纠正了它,你可以在代码下面看到它。
接下来,您无法在roles
标记中添加<Item>
属性。您必须在<Menu>
标记中提供此属性。所以,您的菜单应如下所示:
<Menu name="Company" title="menu.companyTitle" page="#" roles="ROLE_ADMIN,ROLE_USER">
<Item name="NewCompanyRequest" title="menu.NewCompanyRequest" page="/admin/companyRequestList" />
<Item name="editCompanies" title="menu.editCompanies" page="/xx/yyy/ccc" />
</Menu> ...
或如下所示:
<Menu name="Company" title="menu.companyTitle" page="/xxx/yyy/zzzz" roles="ROLE_ADMIN">
<Item name="NewCompanyRequest" title="menu.NewCompanyRequest" page="/admin/companyRequestList" />
<Item name="editCompanies" title="menu.editCompanies" page="/xx/yyy/ccc" />
</Menu> ...
或者您可以将下拉菜单设置为单独的菜单,并提供单独的角色权限,如下所示:
<Menu name="NewCompanyRequest" roles="ROLE_ADMIN,ROLE_USER" title="menu.NewCompanyRequest" page="/admin/companyRequestList" />
<Menu name="editCompanies" roles="ROLE_ADMIN" title="menu.editCompanies" page="/xx/yyy/ccc" />