2016-12-04 95 views
0

我想從我的數據庫中檢索數據,並使用jsp和servlet將其顯示在表中。我創建了表並從數據庫中檢索數據,但未在表中顯示。我不知道什麼是錯的。這是我到目前爲止的代碼:在表中顯示數據庫JSP

JSP頁面:

<h1>List of Cars in Inventory</h1> 
     <form name="table" action="Inventory" method="get"> 
     <table> 
      <tr> 
       <td>Car ID</td> 
       <td>Car Make</td> 
       <td>Car Model</td> 
       <td>Car Year</td> 
       <td>Transmission Type</td> 
       <td>Rate Per Mile</td> 
       <td>Rate Per Day</td> 
       <td>Availability</td> 
      </tr> 

      <c:forEach var="vehicle" items="${list}"> 
       <tr> 
        <td><c:out value="${vehicle.id}"/></td> 
        <td><c:out value="${vehicle.make}"/></td> 
        <td><c:out value="${vehicle.model}"/></td> 
        <td><c:out value="${vehicle.year}"/></td> 
       </tr> 
      </c:forEach> 

     </table> 
     </form> 

servlet頁面:

public class Inventory extends HttpServlet 
{ 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
    { 
     List<Vehicles> list = InventoryService.getListOfVehicles(); 
     request.setAttribute("list", list); 
     request.getRequestDispatcher("inventory.jsp").forward(request,response); 
    } 

數據庫類:

public static List<Vehicles> getListOfVehicles() 
    { 
     Vehicles vehicles = new Vehicles(); 
     List<Vehicles> vehicleList = new ArrayList<>(); 
     try 
     { 
      Connection conn = DBConnection.getConnection(); 

      String query = "SELECT * FROM Vehicles"; 
      PreparedStatement stmt = conn.prepareStatement(query); 
      ResultSet rs = stmt.executeQuery(); 

      while(rs.next()) 
      { 
       vehicles.setId(rs.getInt("id")); 
       vehicles.setMake(rs.getString("make")); 
       vehicles.setModel(rs.getString("model")); 
       vehicles.setYear(rs.getString("year")); 
       vehicles.setRatePerMile(rs.getString("ratepermile")); 
       vehicles.setRatePerDay(rs.getString("rateperday")); 
       vehicles.setTaken(rs.getString("taken")); 
       vehicleList.add(vehicles); 
      } 
     } 
     catch (Exception e) 
     { 
      System.out.println(e); 
     } 

     return vehicleList; 
    } 
+0

檢查在地址欄中的網址是您SERVET的URL。使用你的調試器。或者至少在代碼中使用println語句。檢查你的servlet是否被執行。檢查你的數據庫類中發生了什麼。檢查查詢是否返回數據。檢查列表是否爲空。檢查生成的HTML是否正確。這是程序員的日常工作。請注意,您在Database類中多次存儲單個Vehicles實例。順便說一下,這個班級應該被命名爲車輛,而不是車輛。一個實例代表1輛車,車輛不多。 –

回答

0

你應該一個新創建的對象添加到vehicleList在while-block中。

public static List<Vehicles> getListOfVehicles() 
{ 
    // remove from here 
    //Vehicles vehicles = new Vehicles(); 

    List<Vehicles> vehicleList = new ArrayList<>(); 
    try 
    { 
     Connection conn = DBConnection.getConnection(); 

     String query = "SELECT * FROM Vehicles"; 
     PreparedStatement stmt = conn.prepareStatement(query); 
     ResultSet rs = stmt.executeQuery(); 

     while(rs.next()) 
     { 
      //create object here 
      Vehicles vehicle = new Vehicles(); 

      vehicle.setId(rs.getInt("id")); 
      vehicle.setMake(rs.getString("make")); 
      vehicle.setModel(rs.getString("model")); 
      vehicle.setYear(rs.getString("year")); 
      vehicle.setRatePerMile(rs.getString("ratepermile")); 
      vehicle.setRatePerDay(rs.getString("rateperday")); 
      vehicle.setTaken(rs.getString("taken")); 
      vehicleList.add(vehicle); 
     } 
    } 
    catch (Exception e) 
    { 
     System.out.println(e); 
    } 

    return vehicleList; 
} 

想想也重新命名從車輛你的JavaBean類奇異車輛