【问题标题】:Spring MVC 4 Site NavigationSpring MVC 4 站点导航
【发布时间】:2018-04-20 01:36:56
【问题描述】:

我开始使用 Spring MVC 4 开发一个网站。我希望我的网站有一个顶部导航。当用户将鼠标悬停在顶部导航上时,我希望他们看到他们有权访问的页面列表。

如何以 Spring MVC 4 最佳实践方式实现这一目标?

为了说明我的例子,想象一下:

<ul id='menu-nav'>
<li><a href='homeURL'>Home</a></li>
<li><a href='page1URL'>Page 1</a></li>
<li><a href='page2URL'>Page 2</a></li>
</ul>

以上是我非常有限的网站中所有页面的列表。一旦每个用户登录,我希望他们只能看到他们有权访问的页面的链接。

因此,例如,使用管理员权限登录的用户会看到所有链接。但是没有管理员权限的用户只能看到主页和第 1 页的链接。

任何人都可以建议一种方法来实现这一点吗?

【问题讨论】:

    标签: spring spring-mvc spring-security


    【解决方案1】:

    我认为这应该可行:

    <ul id='menu-nav'>
        <li><a href='homeURL'>Home</a></li>
        <li><a href='page1URL'>Page 1</a></li>
        <!-- For many roles -->
        <!-- <security:authorize access="hasAnyRole('ADMIN', 'USER')"> -->
        <!-- For one role -->
        <security:authorize access="hasRole('ADMIN')">
            <li><a href='page2URL'>Page 2</a></li>
        </security:authorize>
    </ul>
    

    检查这个答案:https://stackoverflow.com/a/11469342/8800147

    【讨论】:

    • 嗨,Brice,感谢您回复我。我可以看到您的解决方案如何适用于静态 html。但是,如果我使用循环生成列表(列表数据传递到模型中的页面),这会起作用吗?以及如何处理多个组?
    • 嗨,我编辑了答案,这样你就可以看到许多角色的情况。您将使用 hasAnyRole。我不确定模板中的条件语句(也许这会对stackoverflow.com/questions/10815464/… 有所帮助),但否则您可以动态地为管理员用户创建一个列表,为其他用户创建另一个列表。
    • 感谢您的更新。您提到了为管理员用户和其他用户动态制作列表的想法。我认为这有帮助......我可能会尝试考虑如何根据登录用户创建列表。然后 jsp 只需要显示它给出的任何内容。
    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    相关资源
    最近更新 更多