2013-02-08 70 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