Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于JSP中角色用户的动态菜单';s_Jsp_Servlets_Session State_Java Server - Fatal编程技术网

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

基于JSP中角色用户的动态菜单';s,jsp,servlets,session-state,java-server,Jsp,Servlets,Session State,Java Server,我有一个web应用程序,以前我只有一种用户(客户端用户),但现在我正在工作,我在应用程序中添加了角色管理员,因此我需要显示基于角色的菜单,即,当用户登录时,显示有限数量的子菜单,但如果登录用户是管理员,则显示菜单的完整选项。应用程序的后端正在使用JSP构建。执行此操作的最佳做法是什么?只需根据当前登录用户的角色有条件地显示即可。您可以为此使用标记 例如,如果菜单是静态的,只需在会话对象上提供一个表示当前登录用户的布尔getter方法: <c:if test="${user.admin}"&

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

只需根据当前登录用户的角色有条件地显示即可。您可以为此使用
标记

例如,如果菜单是静态的,只需在会话对象上提供一个表示当前登录用户的布尔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>

显示管理员菜单项。