【问题标题】:Spring Menu Configuration弹簧菜单配置
【发布时间】:2015-02-19 09:13:34
【问题描述】:

我正在使用 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 用户可见,并且工作正常,但在 UI 中它扰乱了下一个菜单 Exchaged 并引入了一个。

我尝试了一些步骤,但没有工作,也没有找到解决方案。

【问题讨论】:

  • 那是什么标记语言?
  • 您必须为&lt;Menu&gt; 省略不正确的标签。

标签: spring spring-mvc spring-security


【解决方案1】:

首先,您为 &lt;Menu&gt; 标签使用了错误的结束标签。我已经更正了,您可以在下面的代码中看到它。

接下来,您不能在&lt;Item&gt; 标签中添加roles 属性。您必须在 &lt;Menu&gt; 标记中提供此属性。因此,您的菜单应如下所示:

<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" />

【讨论】:

  • 感谢您的回复 Wat 如果我想要两个项目在一个菜单中,它的要求虽然我知道单独的菜单解决了问题,但我想要一个。这样这两个项目中的每个项目都将分别显示为分配的角色。
  • 它是否按您的预期工作?我的意思是,&lt;Menu&gt; 有两个 &lt;Item&gt;s,每个都有不同的角色权限?如果是,有什么问题?
猜你喜欢
  • 2011-09-11
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 2011-11-27
相关资源
最近更新 更多