隐藏基于布尔值true false jsp的列表项

时间:2014-06-19 12:27:00

标签: java javascript jsp

我的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函数以根据用户权限隐藏元素?

2 个答案:

答案 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);