ResultSet#next()
возвращает boolean
, а не String
, содержащее значение столбца, который вы ищете. Но, тем не менее, вы действительно не хотите перемещать курсор к следующей строке. Когда вы вернетесь к началу цикла while, вы фактически пропустили одну строку.
Вам необходимо изменить логику: сравните текущий повторный name
с ранее повторенный один и отобразите его, только если он отличается Затем сохраните в настоящее время с повторением name
как переменную, чтобы его можно было сравнить на следующей итерации. Вот пример запуска, основанный на JSTL / EL и вымышленном List<Item>
, который хранится как ${items}
в области действия:
<table>
<c:forEach items="${items}" var="item">
<tr>
<td><c:if test="${item.name != previousName}">${item.name}</c:if></td>
</tr>
<c:set var="previousName" value="${item.name}" />
</c:forEach>
</table>
Вам нужно только перевести его на старомодные скриптлеты , если вы настаиваете на его использовании. Вышеприведенная логика должна быть достаточно понятной.