[英]How to hide a tab in java based on the user role
在我的应用程序中,我有三个列表项:文件上载,查看报告和更改密码。 如果登录是由普通用户登录,我需要隐藏“查看报告”,如果登录是由管理员登录,则需要显示“查看报告”。 以下是我标签的代码
母版页中的代码-
<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;
}
我曾尝试过制作report.visible = false; 我们将在.net中执行此操作,但在Java中不起作用
好吧,基本上,您可以将代表登录用户的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安全性:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<sec:authorize access="hasRole('ADMIN')">
<li ....>
</sec:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.