2014-06-19 20 views
0

我在jsp頁面中有一個幻燈片菜單,登錄後我檢查用戶是否被允許從存儲在數據庫中的參數中查看元素。我需要根據用戶是否被允許查看來隱藏項目。隱藏基於布爾值的列表項false 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函數能夠隱藏元素基礎上用戶權限?

+1

不創建JSP等領域,而不是隱藏,因爲隱藏字段可以使用Firefox Firebug插件等簡單的瀏覽器插件可見。 – Braj

回答

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> 
+0

良好的使用Scriplet在21世紀。爲什麼創建JSTL和EL是專家? – Braj

1

而是躲在使用JavaScript的元素,如果你把這種邏輯在JSP文件會更安全:

<% 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); 
+1

在21世紀良好的使用Scriplet。爲什麼創建JSTL和EL是專家? – Braj