【问题标题】:Dynamically displaying result set on a HTML page in a table在表格中的 HTML 页面上动态显示结果集
【发布时间】:2016-12-21 21:08:17
【问题描述】:

我有一个接受用户查询并将其传递给 servlet 的网页。这个 servlet 调用我的 java 函数,这些函数运行查询并获取结果表。我现在有了这个结果集,但我希望在我的网页上的表格中显示这个结果集。问题是我事先不知道查询是什么或它将运行的表的架构。我想知道是否有办法在我的网页上的表格上动态呈现结果集内容。由于我不知道架构,所以没有创建 java 模型对象的选项。我正在使用 HTML、JSP 和显然是 Java

【问题讨论】:

  • 你能写一段代码把ArrayList的内容转入HTML表格吗?
  • @PM 77-1 你能详细说明一下吗?因为我想我可以解决这个问题,想知道这对我的问题有什么帮助?
  • 将您的结果集读入ArrayList<ArrayList<String>>(字符串数组列表的araylist)并传递给您的JSP。您的 JSP 会将其呈现为表格,而无需了解其实际内容。

标签: java jsp web


【解决方案1】:

我希望我对 JSP 的记忆很好。我想你已经用'*'做了一个选择来拥有所有的列。在结果中,您可以获得列数,因此知道您必须创建多少列,以及列名上的“for”,为您提供列名。有了这个,您应该能够在不事先知道表中的列名的情况下显示选择结果。可能仅在来自 JDBC 的结果集上才有可能。对不起,如果没有为你申请

【讨论】:

    【解决方案2】:

    在结果集对象上使用 getMetaData() 来获取结果集的详细信息,例如列数和列名。使用 size() 方法获取结果集的大小。

    接下来使用 size() 可以计算 html 表中应该有多少行,使用 resultset.getMetaData().getColumnCount() 可以计算 html 表中的列数。您可以使用列名作为表格列的标题。

    如果您需要进一步的帮助,请告诉我。

    示例代码从您的结果集中检索元数据。

    st = conn.createStatement();
    ResultSet rs = st.executeQuery("SELECT * FROM survey");
    
    ResultSetMetaData rsMetaData = rs.getMetaData();
    
    int numberOfColumns = rsMetaData.getColumnCount();
    System.out.println("resultSet MetaData column Count=" + numberOfColumns);
    
    for (int i = 1; i <= numberOfColumns; i++) {
      System.out.println("column MetaData ");
      System.out.println("column number " + i);
      // get the column's name.
      System.out.println(rsMetaData.getColumnName(i));      
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2021-08-09
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2014-06-14
      • 1970-01-01
      相关资源
      最近更新 更多