导航菜单中不同帐户类型的不同菜单

Different menus for different account types in navigation menu

在我的 Spring 项目中,使用 freemarker,我有这个菜单:

    <div class="container">
    <div class="navbar navbar-static-top">
        <div class="navigation">
            <nav>
                <ul class="nav topnav bold">
                    <li class="dropdown"><a href="<@spring.url '/admin/home' />"><@spring.message "label.home" /></a></li>
                    <li class="dropdown active"><a href="#"><@spring.message "label.adminPanel" /> <i class="icon-angle-down"></i></a>
                        <ul class="dropdown-menu bold">
                            <li><a href="<@spring.url '/admin/manageaccount' />"><@spring.message "label.manageAccounts" /></a></li>
                            <li><a href="<@spring.url '/admin/editMeForm' />"><@spring.message "label.myAccount" /></a></li>
                        </ul></li>
                    <li class="dropdown"><a href="<@spring.url '/j_spring_security_logout' />"><@spring.message "label.logout" /> </a></li>
                </ul>
            </nav>
        </div>
    </div>
</div>

但是,如果用户是客户、员工、管理员等,我想为来宾隐藏一些元素并插入其他元素

我在我的页面中添加了:

<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />

                            <@security.authorize  access="hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')">
                            <li class="dropdown active"><a href="#"><@spring.message "label.adminPanel" /> <i class="icon-angle-down"></i></a>
                                <ul class="dropdown-menu bold">
                                    <li><a href="<@spring.url '/admin/manageaccount' />"><@spring.message "label.manageAccounts" /></a></li>
                                    <li><a href="<@spring.url '/admin/editMeForm' />"><@spring.message "label.myAccount" /></a></li>
                                </ul>
                            </li>
                        </@security.authorize>

使用 spring 安全性,根据用户角色,您可以 show/hide 菜单部分。

<@security.authorize access="hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')">