Spring MVC 4 站点导航

Posted

技术标签:

【中文标题】Spring MVC 4 站点导航【英文标题】:Spring MVC 4 Site Navigation 【发布时间】: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 页的链接。

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

【问题讨论】:

【参考方案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://***.com/a/11469342/8800147

【讨论】:

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

以上是关于Spring MVC 4 站点导航的主要内容,如果未能解决你的问题,请参考以下文章

请推荐用于 Spring MVC 3.0 的导航策略

如何在 Spring MVC 应用程序中自动导航到登录页面?

在 Spring MVC 中导航 HTML 页面后,是不是有任何方法可以检查用户会话?

Maven 工程下 Spring MVC 站点配置 C3P0连接池与@Autowired的应用

如何使用 Spring MVC 返回视频,以便可以使用 html5 <video> 标签进行导航?

JSON - Spring MVC:如何将 json 数据发布到 Spring MVC 控制器