How to conditionally display elements of JSP page depending on user role

前端 未结 2 1367
情话喂你
情话喂你 2020-12-18 16:22

How to load menu on webpage depends upon login user? I want to make websites where some menu will show before login and after login it will show more menu depends upon login

相关标签:
2条回答
  • 2020-12-18 16:29

    You can just use JSTL to programmatically control the flow in the HTML output of the JSP. You can check the role of the currently logged-in user by HttpServletRequest#isUserInRole() which returns a boolean.

    As you're using Servlet 3.0, you'll also be able to take benefit of the new EL 2.2 support of invoking methods with arguments. So, this should do:

    <c:if test="${pageContext.request.isUserInRole('admin')}">
        <p>This will be displayed only if the user has the role "admin".</p>
    </c:if>
    <c:if test="${pageContext.request.isUserInRole('guest')}">
        <p>This will be displayed only if the user has the role "guest".</p>
    </c:if>
    

    See also:

    • How to disable GET requests to JSP page?
    • Restrict JSP/Servlet access to specific users only
    0 讨论(0)
  • 2020-12-18 16:48

    You could have different menus in different jsps and then include those jsps based upon the logged in user.

    For instance...

    <%if(userRole.equals("admin")){%>
       <jsp:include page="../menu/admin_menu.jsp" />
    <%}%>
    <%if(userRole.equals("user")){%>
       <jsp:include page="../menu/user_menu.jsp" />
    <%}%>
    
    0 讨论(0)
提交回复
热议问题