2013-02-08 120 views
0

我试图从数据库中检索表并将其填充到表中。该表格可通过使用EditableGrid(http://www.editablegrid.net/en)进行编辑。我自动填充的表像这样:使用jstl填充tr标识标记

结果报告

<table id="htmlgrid" border="1"> 

    <!-- column headers --> 
    <tr> 
     <c:forEach var="columnName" items="${result.columnNames}"> 
      <th><c:out value="${columnName}" /></th> 
     </c:forEach> 
    </tr> 

    <!-- column data --> 
    <c:forEach var="row" items="${result.rowsByIndex}"> 
     <tr> 
      <c:forEach var="column" items="${row}"> 
       <td><c:out value="${column}" /></td> 
      </c:forEach> 
     </tr> 
    </c:forEach> 
</table> 

结果被检索,像这样:

c = ConnectionManager.getConnection(); 
      ps = c.prepareStatement("select * from test_persons", 
        ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); 
      rs = ps.executeQuery(); 
      Result result = ResultSupport.toResult(rs); 

      request.setAttribute("result", result); 
      RequestDispatcher rd = request 
        .getRequestDispatcher("/display.jsp"); 
      rd.forward(request, response); 

的事情是,为了使用EditableGrid,在TR标签需要一个ID,例如:

    <tr id="R1"> 
       <td>Duke</td> 
       <td>Patience</td> 
       <td>33</td> 
       <td>1.842</td> 
       <td>uk</td> 
       <td>[email protected]</td> 
       <td>false</td> 
       <td>11/12/2002</td> 
      </tr> 
      <tr id="R2"> 
       <td>Rogers</td> 
       <td>Denise</td> 
       <td>59</td> 
       <td>1.627</td> 
       <td>us</td> 
       <td>[email protected]</td> 
       <td></td> 
       <td>07/05/2003</td> 
      </tr> 

我该如何使用jstl自动将标记放入?根据查询,数据库可能会返回任意数量的行。这可能吗?还是有更好的解决方案来从结果集中填充表并使其可编辑(以便稍后更新数据库)。

回答

0

嗯......你遍历所有的行里面,你可以这样写:

<c:forEach var="row" items="${result.rowsByIndex}"> 
    <tr id="${row.id}"> 
+0

哎,我收到以下错误 java.lang.NumberFormatException:对于输入字符串:在“ID” \t java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) \t在java.lang.Integer.parseInt(Integer.java:449) \t在java.lang.Integer.parseInt(Integer.java:499) – Twinhelix 2013-02-08 12:21:59

+0

另外,EditableGrid似乎想使用像等 – Twinhelix 2013-02-08 12:23:32