【问题标题】:Displaying database table on jsp在jsp上显示数据库表
【发布时间】:2014-05-29 11:42:28
【问题描述】:

我有一个具有以下属性的登录表:

UName Password id FirstName LastName Category DateOfBirth Address EmailId ContactNo AffiliateGroup

sathya///###////////////////////////////////// ///////////管理员

Harish///###/////////001////////////////////////// /////加盟

Vinod///###////////002///////////////////////// //客户/////////////////////////////////////////////// ///////////////////////////哈里什

拉胡尔///###/////////003///////////////////////// //客户/////////////////////////////////////////////// ///////////////////////////哈里什

Radha/###/////////004////////////////////////////////////////////////////////////////// /p>

Raaj///###/////////005/////////////////////////客户///////////////////////////////////////////////// /////////////////////////////拉达

以上只是我们在 Web 应用程序中使用的登录表的说明。

说明: 我们有管理员、附属机构和客户,有很多注册请求。如果它是为了附属公司的职位,那么管理员会处理它。如果它是为客户的附属机构处理它的位置。有多个分支机构,当他们添加客户时,他们可以添加自己的客户,他们的名字会根据每个客户的详细信息存储在数据库中。现在基于 Affiliates 名称,客户端详细信息应显示在 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 登录,他可以看到所有客户端的详细信息。但我不希望这种情况发生,harish 必须只能查看 rahul 和 vinods 数据。

Affiliate Group 是通过以下方式获得的:request.getSession.getAttribute("user"); 然后将其插入数据库。它不存在于 DTO 中。

请帮我解决这个问题。提前致谢。

【问题讨论】:

  • 感谢@jmail 的编辑
  • 抱歉没有添加空格,所以我添加了正斜杠,以便数据位于正确的列名下。抱歉给您带来不便...

标签: java mysql jsp jakarta-ee java-ee-6


【解决方案1】:

这将只显示来自登录用户的客户,但会按关联公司名称过滤。如果您有多个具有相同名称的客户端,它将不起作用。在这种情况下,您应该按 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>

【讨论】:

  • 不,我想要“当会员登录他的用户名时将在会话中,因此只有该会员下的客户才能看到该会员”..
  • 嘿它显示警告:未定义的属性名称“用户”
  • 您应该从会话中获取“用户(附属)ID”,并将其与“客户端 DTO”中的“附属ID”进行比较。
【解决方案2】:

首先按用户名(会员)对列表进行排序,然后输入类似这样的代码..

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

【讨论】:

  • 当会员添加客户时,它已经在数据库中排序,会员的名称也存储在客户详细信息中。我的意思是在他的登录会话中添加这个客户的会员
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2012-08-30
  • 1970-01-01
相关资源
最近更新 更多