2017-10-13 36 views
0

JSPをリファクタリングしてDBを照会する際に、このテーブルを循環させたので、ページに新しいテーブル行として表示されます。私はテーブルの行情報の内部にテーブルのデータを表示するテーブルを取得するのに問題があります。ループする前に、新しいテーブルデータをこれらのそれぞれでプッシュする前に、テーブルの最初の行をテーブルにプッシュするだけで、残りのテーブルはJSPのテーブルの外側に表示されます。これを解決する手助けができますか? 私は車のリストにプッシュされたテーブルのデータを持って、接続はすべて1つの方法で。私は以下のようにデータを取り出しています。JSPがJSP上でmysqlテーブルをループして表示する

<table border="2"> 
    <tr class="tblHeader"> 
     <td>Car ID</td> 
     <td>Year</td> 
     <td>Make</td> 
     <td>Model</td> 
     <td>Color</td> 
     <td>Availability</td> 

    </tr> 
    <% 
     Table table = new Table(); 
     table.getTableConnection(); 
     List<Car> cars = table.getTableConnection(); 
     String renting; 
     for (Car c : cars) { 
      int id = c.getId(); 
      String year = c.getYear(); 
      String make = c.getMake(); 
      String model = c.getModel(); 
      String color = c.getColor(); 
      String avail = c.getAvailable(); 

    %> 
     <tr> 
     <td><%=id%></td> 
     <td><%=year%></td> 
     <td><%=make%></td> 
     <td><%=model%></td> 
     <td><%=color%></td> 
     <td><%=avail%></td> 
     </tr> 
     } 
+0

アクセント記号を持つcharのようなデータに問題がありますか?あなたは正しくHTMLテーブルを閉じていますか? Javaコードを避けるために、コード内に式言語を使用することを検討してください。 –

+0

'table.getTableConnection();'これは車のリストを返すのですか? –

答えて

2

行をループに配置する方がよいでしょう。

<c:forEach items="${cars}" var="car"> 
    <tr>  
     <td>${car.id}</td> 
     <td>${car.year}</td> 
     <td>${car.make}</td> 
     <td>${car.model}</td> 
     <td>${car.color}</td> 
     <td>${car.available}</td> 
    </tr> 
</c:forEach> 
1

まず、html構文を修正する必要があります。列ヘッダーを指定するには、表ヘッダー・タグ<th></th>を使用する必要があります。

<tr class="tblHeader"> 
     <th>Car ID</th> 
     <th>Year</th> 
     <th>Make</th> 
     <th>Model</th> 
     <th>Color</th> 
     <th>Availability</th> 
</tr> 

データレンダリングの部分については、コードで問題が見つかりませんでした。

0

foreachループを使用してマイナーな変更を行った後、forループが終了する前にテーブルが閉じられていました。テーブルのデータはテーブルの最後で切り取られていました。この愚かな間違いを見ないための私のせい。

関連する問題