在我的应用程序中,我有三个列表项文件上传,查看报告和更改密码。如果登录是普通用户,我需要隐藏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
答案 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: