如何在网页上加载菜单取决于登录用户?我想制作一些网站,其中一些菜单将在登录前显示,登录后将显示更多菜单,如果管理员登录则取决于登录用户,如果普通用户登录则会出现一些管理菜单,然后会添加一些不同的菜单。我想使用JSP / Servlet构建这个项目。当用户点击任何菜单时,将不会重新加载总页面,只会更改某些部分,其中显示此菜单的详细说明。
答案 0 :(得分:1)
您可以使用JSTL以编程方式控制JSP的HTML输出中的流。您可以通过HttpServletRequest#isUserInRole()
检查当前登录用户的角色,该用户返回boolean
。
当您使用Servlet 3.0时,您还可以利用新的EL 2.2支持使用参数调用方法。所以,这应该做:
<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>
答案 1 :(得分:0)
您可以在不同的jsps中使用不同的菜单,然后根据登录的用户包含这些jsps。
例如......
<%if(userRole.equals("admin")){%>
<jsp:include page="../menu/admin_menu.jsp" />
<%}%>
<%if(userRole.equals("user")){%>
<jsp:include page="../menu/user_menu.jsp" />
<%}%>