【问题标题】:JSP - How do I print out empty <td> when values are duplicated?JSP - 当值重复时如何打印出空的 <td>?
【发布时间】:2014-04-21 15:50:20
【问题描述】:

下面是打印第一张图片的 JSP 代码。我正在努力实现第二张图片中的内容。

我总共有 8 列。只要有来自内部连接表的数据,前 4 列就会打印出来,其中包括数据会发生变化的最后 4 列。我希望在从上面复制信息的列和行中打印出空数据或空间。每个 ID 最多可以有 6 行(最左列)。

<table border="1" width="100%">
<tr>
  <th>Student ID</th>
  <th>Last Name</th>
  <th>First Name</th>
  <th>Grade</th>
  <th>Events</th> 
  <th>Participation Level</th>
  <th>Ind/Team</th> 
  <th>Event Name</th>       
</tr>

<c:forEach var="row" items="${result.rows}">


  <% theStudentId = 123 ; %>
  <% System.out.println("at " + (new java.util.Date()) + ", theStudentId is " + theStudentId); %>

  <tr>
    <td><c:out value="${row.idStudents}"/></td>
    <td><c:out value="${row.LastName}"/></td>
    <td><c:out value="${row.FirstName}"/></td>
    <td><c:out value="${row.Grade}"/></td>
    <td><c:out value="${row.idEvents}"/></td>
    <td><c:out value="${row.Grade}"/></td>
    <td><c:out value="${row.Type}"/></td>
    <td><c:out value="${row.Name}"/></td>
  </tr>

</c:forEach>

这是 jsp 目前打印出来的内容。

这是我希望达到的目标。

【问题讨论】:

    标签: java jsp duplicates jstl el


    【解决方案1】:

    您需要跟踪最后一个值。就在这部分之前:

    <c:forEach var="row" items="${result.rows}">
    

    您应该创建一个名为 lastStudentId 的变量(最初为 null)。

    在循环内部,检查当前学生 ID 是否等于 lastStudentId。 (我不知道该怎么做,因为你没有提供这些字段的类型信息,我假设它们是字符串)。如果它与最后一个相同,则打印空 td(例如包含  )。如果不一样,那就照常做吧。

    在循环的底部,分配lastStudentId = row.idStudents,你就可以开始了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2015-04-24
      相关资源
      最近更新 更多