我有一个包含以下属性的登录表:
UName密码ID FirstName LastName类别DateOfBirth地址EmailId ContactNo AffiliateGroup
沙迪亚/// ### //////////////////////////////////////// ///////////管理员
哈里什/// ### ///////// 001 ////////////////////////////// /////会员
维诺德/// ### ///////// 002 ////////////////////////////// //客户/////////////////////////////////////////////// /////////////////////////////// Harish
的Rahul /// ### ///////// 003 ////////////////////////////// //客户/////////////////////////////////////////////// /////////////////////////////// Harish
Radha / ### /////////004 //////////////////////////////加盟< / p>
Raaj /// ### ///////// 005 //////////////////////////////客户///////////////////////////////////////////////// //////////////////////////////////拉达
以上只是我们在Web应用程序中使用的登录表的说明。
释: 我们有一个管理员,附属机构和客户,有很多注册请求。如果它是关联公司的位置,那么管理员处理它。如果它的客户关联公司的位置处理它。有多个附属公司,他们可以添加自己的客户端,当他们添加客户端时,他们的名称会根据每个客户端详细信息存储在数据库中。现在基于关联公司名称,客户端详细信息应显示在jsp上。上面的代码显示了所有关联公司的所有客户详细信息,但我想要的只是他的(关联公司)组详细信息必须在jsp上显示..
在上表中,当Harish只登录Vinod时,Rahul的详细信息必须是他可以访问的。它应该显示在jsp上。
我试过这样做:
<table id="admclientprofile">
<tr>
<th><b>id</b></th>
<th><b>FirstName</b></th>
<th><b>LastName</b></th>
<th><b>Gender</b></th>
<th><b>Category</b></th>
<th><b>DateOfBirth</b></th>
<th><b>Age</b></th>
<th><b>Address</b></th>
<th><b>Country</b></th>
<th><b>State</b></th>
<th><b>City</b></th>
<th><b>PinCode</b></th>
<th><b>UserName</b></th>
<th><b>EmailId</b></th>
<th><b>ContactNo</b></th>
<th><b>MobileNo</b></th>
<th><b>Status</b></th>
</tr>
<c:forEach items="${clients}" var="client">
<tr>
<td><c:out value="${client.id}" /></td>
<td><c:out value="${client.firstName}" /></td>
<td><c:out value="${client.lastName}" /></td>
<td><c:out value="${client.gender}" /></td>
<td><c:out value="${client.category}" /></td>
<td><c:out value="${client.date}" /></td>
<td><c:out value="${client.age}" /></td>
<td><c:out value="${client.address}" /></td>
<td><c:out value="${client.country}" /></td>
<td><c:out value="${client.state}" /></td>
<td><c:out value="${client.city}" /></td>
<td><c:out value="${client.pinCode}" /></td>
<td><c:out value="${client.userName}" /></td>
<td><c:out value="${client.emailId}" /></td>
<td><c:out value="${client.contactNo}" /></td>
<td><c:out value="${client.mobileNo}" /></td>
<td><a href="RejectProfileServlet?id=${client.id}">Reject</a></td>
</tr>
</c:forEach>
使用上面的代码,如果harish登录,他能够看到所有客户的详细信息。但我不希望发生这种情况必须能够只查看rahul和vinods数据。
Affiliate Group通过以下方式获得:request.getSession.getAttribute(“user”); 然后将其插入数据库。它不存在于DTO中。
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:2)
这将仅显示已登录用户的客户端,但会按关联企业名称进行过滤。如果您有多个具有相同名称的客户端,它将无法工作。在这种情况下,您应该通过id比较关联公司。
<!-- Some affiliate data -->
<c:forEach items="clients" var="client">
<c:if test="${client.affiliateName == request.getSession().getAttribute("user")}">
<!-- Some client data -->
</c:if>
</c:forEach>
答案 1 :(得分:0)
首先按用户名(Affiliate)对您的列表进行排序,然后将代码放到这样的代码中。
<c:forEach items="${clients}" var="client">
<c:set var="previousAffiliate" scope="page" value="${client.Affiliate}"/>
<c:if test="${client.Affiliate != previousAffiliate}">
<tr><c:out value="${client.Affiliate}" /></tr>
</c:if>
<tr>
<td><c:out value="${client.id}" /></td>
<td><c:out value="${client.firstName}" /></td>
<td><c:out value="${client.lastName}" /></td>
<td><c:out value="${client.gender}" /></td>
<td><c:out value="${client.category}" /></td>
<td><c:out value="${client.date}" /></td>
<td><c:out value="${client.age}" /></td>
<td><c:out value="${client.address}" /></td>
<td><c:out value="${client.country}" /></td>
<td><c:out value="${client.state}" /></td>
<td><c:out value="${client.city}" /></td>
<td><c:out value="${client.pinCode}" /></td>
<td><c:out value="${client.userName}" /></td>
<td><c:out value="${client.emailId}" /></td>
<td><c:out value="${client.contactNo}" /></td>
<td><c:out value="${client.mobileNo}" /></td>
<td><a href="RejectProfileServlet?id=${client.id}">Reject</a></td>
</tr>
</c:forEach>