我已经使用Netbeans,GlassFish和JavaDB创建了一个数据库应用程序。现在,我的控制器Servlet代码执行一些动态SQL查询并返回结果集(或者我可以更改toString)。现在,如何以表格格式显示返回的结果集(我不知道结果集的结构)。有人可以帮我吗?
您可以Map<String, Object>用来表示“动态”行,该行可在中进行迭代<c:forEach>。您可以ResultSetMetaData用来收集有关列的信息,例如列数和列标签。
Map<String, Object>
<c:forEach>
ResultSetMetaData
因此,此映射应执行以下操作:
List<Map<String, Object>> rows = new ArrayList<Map<String, Object>>(); ResultSetMetaData metaData = resultSet.getMetaData(); int columnCount = metaData.getColumnCount(); while (resultSet.next()) { Map<String, Object> columns = new LinkedHashMap<String, Object>(); for (int i = 1; i <= columnCount; i++) { columns.put(metaData.getColumnLabel(i), resultSet.getObject(i)); } rows.add(columns); }
您可以在JSP中将其显示如下:
<table> <thead> <tr> <c:forEach items="${rows[0]}" var="column"> <td><c:out value="${column.key}" /></td> </c:forEach> </tr> </thead> <tbody> <c:forEach items="${rows}" var="columns"> <tr> <c:forEach items="${columns}" var="column"> <td><c:out value="${column.value}" /></td> </c:forEach> </tr> </c:forEach> </tbody> </table>