我想显示名称和预订时间排名前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 );