1

如何在网页上加载菜单取决于登录用户?我想让网站在登录前显示一些菜单,登录后它将显示更多菜单,这取决于登录用户,如果管理员登录,那么如果普通用户登录,则会出现一些管理菜单,然后会添加一些不同的菜单。我想使用 JSP/Servlet 构建这个项目。当用户单击任何菜单总页时,不会重新加载,只会更改某些部分,其中显示此菜单的详细说明。

4

2 回答 2

2

您可以只使用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>

也可以看看:

于 2012-02-16T20:04:34.740 回答
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" />
<%}%>
于 2012-02-16T19:43:35.713 回答