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 应用程序中自动导航到登录页面?
在 Spring MVC 中导航 HTML 页面后,是不是有任何方法可以检查用户会话?
Maven 工程下 Spring MVC 站点配置 C3P0连接池与@Autowired的应用