我想显示名称和预订时间排名前5位的课程。

我已从数据库中选择了前5门课程,并加载到一个列表中。

这是我的代码:

                while (rs.next())
                {
                CourseBooking cb = new CourseBooking ();
                List topCourses = new ArrayList();
                cb.setCoursName(rs.getString(1));
                cb.setBookedTimes(rs.getString(2));
                topCourses.add(cb);
                model.addAttribute("topCourses ", topCourses );
                }


但是当我使用“ th:each”时,它只显示前5名的最后一行,而不能显示

阅读整个列表。

            <tr th:each="m : ${topCourses }">
                <td th:text="${m.coursName}"></td>
                <td th:text="${m.bookedTimes}"></td>
            </tr>

最佳答案

(根据注释-您需要将列表的创建移至for循环之外。)您的代码应如下所示:

List topCourses = new ArrayList<CourseBooking>();

while (rs.next()) {
  CourseBooking cb = new CourseBooking ();
  cb.setCoursName(rs.getString(1));
  cb.setBookedTimes(rs.getString(2));
  topCourses.add(cb);
}

model.addAttribute("topCourses ", topCourses );

09-20 16:16