基于JSP中角色用户的动态菜单

时间:2012-03-05 00:06:35

标签: jsp servlets session-state java-server

我是一个Web应用程序,之前我只有一种用户(客户端用户),但现在我已经工作了,我将角色管理员添加到应用程序中,所以我需要显示基于菜单的菜单在角色中,即,当用户登录时,用户显示有限数量的子菜单,但如果登录的用户是管理员,则显示菜单的完整选项。应用程序的后端正在使用JSP构建。这样做的最佳做法应该是什么?

1 个答案:

答案 0 :(得分:0)

根据当前登录用户的角色,有条件地显示它。您可以使用JSTL <c:if>标记。

,如果菜单是静态的,只需在会话对象上提供一个布尔getter方法,表示当前登录的用户:

<c:if test="${user.admin}">
    Show admin menu items.
</c:if>

或者如果支持EL 2.2,那么每个角色都不需要另外一个:

<c:if test="${user.hasRole('ADMIN')}">
    Show admin menu items.
</c:if>

或者如果您正在使用容器管理的身份验证:

<c:if test="${pageContext.request.isUserInRole('ADMIN')}">
    Show admin menu items.
</c:if>