如何根据用户角色隐藏java中的选项卡

时间:2017-08-13 06:09:32

标签: java jsp servlets

在我的应用程序中,我有三个列表项文件上传,查看报告和更改密码。如果登录是普通用户,我需要隐藏View Reports,如果登录是经理,我需要显示View Reports。以下是我的标签的代码

母版页中的代码 -

<div class="wrapper">
        <div class="menu">
             <div class="menu">
                <ul id="drop-nav">
                    <li id="MenuFileUpload" runat="server"><a href="Upload.jsp">File Upload</a>
                        <ul>
                            <li><a href="ViewUploadedFiles.jsp">View Uploaded Data</a></li>
                        </ul>
                    </li>
                     <li id="MenuReports" runat="server"><a href="Reports.jsp" id="Rpf" runat="server">View Reports</a><ul>
                         <li><a href="Reports1.jsp">Report1</a></li>
                         <li><a href="Reports2.jsp">Reports2</a></li>
                         <li><a href="Report3.jsp">Report3</a></li>
                         </ul>
                     </li>
                         <li id="lichangepwd" runat="server"><a id="A1" href="ChangePassword.jsp" runat="server">Change Password</a></li>
                    <div style="width:auto;float:right;font-weight:bold;padding-right:0cm;">
                        <li id="lilogout"><a href="Logout.jsp"> Logout</a></li></div>
                     <div style="float: left;text-align:right; width: 64%;"> 
                    <asp:Label ID="lblmsg" runat="server" ForeColor="Red" BorderColor="White" Text="Label" Font-Size="Small"></asp:Label> </div>

                </ul>

             </div>

        </div>

登录页面中的代码 -

if(role.equals("Supervisor"))
{
reports.visible=false; 
}

我曾尝试过制作reports.visible = false;我们将在.net中做,但它不适用于java

1 个答案:

答案 0 :(得分:0)

基本上,你将代表登录用户的一些dto传递给视图。 在大多数情况下,Dto(数据传输对象)包含(登录名,名字,姓氏和角色)。然后在代码中你做了这样的事情:

<c:if test="${loggedUserDto.getRole() eq 'ADMIN'}">
   <li id="MenuReports" runat="server"><a href="Reports.jsp" id="Rpf" runat="server">View Reports</a><ul>
                 ....
   </li>
</c:if>

如果使用spring security:

 <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

<sec:authorize access="hasRole('ADMIN')">
    <li ....>
</sec: