2016-09-17 84 views
0

我有一個JSP應用程序,我正在嘗試使用JSP填充客戶的結婚蛋糕訂單表,每行有一個訂單。到目前爲止,我接觸到的方法是將MySQL表中的每個訂單設置爲Order對象,然後將所有訂單對象添加到要在JSP中引用的HashMap。如何使用JSP,Java Beans和Servlets填充JSP表格

這是我的問題。到目前爲止,Order對象是使用數據庫中的數據創建的,並放置在HashMap中。我唯一的問題是我對我應該如何訪問JSP中的數據感到困惑。我在散列表上使用c:forEach循環,並且不確定如何訪問HashMap中Order對象的屬性(如firstName或dueDate字段)。我可能選擇了一個完全錯誤的方法,因爲我對JSP比較陌生。這是我的代碼。

,用於設置的HashMap與填充Order對象的類:

public HashMap getOrders() { 
    dbm = new DatabaseManager(); 
    Statement stmt = null; 
    String sql = "SELECT * FROM orders"; 
    HashMap<Integer, Order> orderMap = new HashMap<Integer, Order>(); 

    dbm.setUrl("jdbc:mysql://localhost:3306/pattycakes"); 
    dbm.connect(); 
    try { 
     stmt = dbm.getConn().createStatement(); 
     ResultSet rs = stmt.executeQuery(sql); 

     rs.beforeFirst(); 
     int i = 0; 
     while (rs.next()) { 
      orderMap.put(i + 1, 
        new Order(rs.getString("first_name"), rs.getString("last_name"), rs.getString("phone"), 
          rs.getString("email"), rs.getString("due_date"), rs.getString("product_type"), 
          rs.getString("comments"), rs.getInt("id"))); 
      i++; 
     } 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } finally { 
     dbm.disconnect(stmt, dbm.getConn()); 
    } 
    return orderMap; 
} 

,設置它作爲一個屬性的Servlet:

FormManager fm = new FormManager(); 
HashMap hm = fm.getOrders(); 
request.setAttribute("orders", hm); 

的JSP試圖填充表:

 <c:forEach var="orders" items="${ orders }"> 
      <tr> 
       <%-- How to get the data from the order objects???? --%> 
       <td class="name"> 
        <a href="">${ }</a> 
       </td> 
       <td>${ }</td> 
       <td>${ }</td> 
       <td>${ }</td> 
      </tr> 
     </c:forEach> 

任何幫助真的很感激。如果我錯誤地處理了這個問題,那麼建議最好的方法是做到這一點。

+1

爲什麼不把你的訂單列表?你並不需要地圖的關鍵。 – rickz

回答

1

我們可以遍歷JSP中的HashMap如下<c:forEach var="country" items="${capitalList}"> Country: ${country.key} - Capital: ${country.value} </c:forEach>