我的jsp页面中有一个幻灯片菜单,登录后,我正在检查是否允许用户从存储在数据库中的参数中查看元素。我需要根据是否允许用户查看来隐藏项目。
我的jsp
<ul style = "display:none">
<li><a href="servletName">MyfirstSubmenu</a></li>
<li><a href="servletName1">MyfirstSubmenu1</a></li>
</ul>
我的道:摘录:
public boolean userallowed(username, itemid){
..........................
return true;
}
我的servlet提取:
if(userallowed(username, itemid)){
session.setAttribute("userallowed", true);
request.getRequestDispatcher("/mypage.jsp").forward(request, response);
}else{
request.getRequestDispatcher("/mypage.jsp").forward(request, response);
session.setAttribute("userallowed", false);
}
如何编写javascript函数以根据用户权限隐藏元素?
答案 0 :(得分:3)
您可以这样做:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:if test="${true == sessionScope.userallowed}">
<ul>
<li><a href="servletName">MyfirstSubmenu</a></li>
<li><a href="servletName1">MyfirstSubmenu1</a></li>
</ul>
</c:if>
答案 1 :(得分:1)
如果您将该逻辑放在JSP文件中,那么使用JavaScript隐藏元素会更安全:
<% if ((boolean) session.getAttribute("userallowed")) { %>
<ul>
<li><a href="servletName">MyfirstSubmenu</a></li>
<li><a href="servletName1">MyfirstSubmenu1</a></li>
</ul>
<% } %>
请注意,如果不允许这些受保护的菜单项看到它们,它们将不会发送到客户端。
此外,您的servlet代码可以简化一点:
session.setAttribute("userallowed", userallowed(username, itemid));
request.getRequestDispatcher("/mypage.jsp").forward(request, response);