Вам нужно собрать данные в String[][]
или List<List<String>>
.
int rows = getMaxRowNumberFromDB();
int cols = getMaxColNumberFromDB();
String[][] values = new String[rows][cols];
// ...
while (resultSet.next()) {
int row = resultSet.getInt("row");
int col = resultSet.getInt("col");
String value = resultSet.getString("value");
values[row][col] = value; // Note: array index is zero based!
}
Так как я не делаю Struts2, вот пример JSTL, чтобы получить картину того, как вы могли бы сделать это саналогичный тег Struts2:
<table>
<c:forEach items="${values}" var="row">
<tr>
<c:forEach items="${row}" var="value">
<td>${value}</td>
</c:forEach>
</tr>
</c:forEach>
</table>