2016-12-04 97 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类奇异车辆