2015-01-04 57 views
0

我正在創建一個webshop,我從SQL數據庫獲取信息並將其放入一個名爲MySQLBean的bean中的項目數組中。到現在爲止還挺好。從豆類ArrayList中選擇項目

private void doSelect() { 

    try {Connection conn = ds.getConnection(); 
     try {PreparedStatement dbQuery = conn.prepareStatement("SELECT * from item"); 
      ResultSet resultset = dbQuery.executeQuery(); 
      results.clear(); 
      while(resultset.next()){ 
       results.add(new Item(resultset.getInt("id"), 
            resultset.getString("name"), 
            resultset.getDouble("price"), 
            resultset.getString("description"))); 
      } 
     } 
     finally {conn.close(); 
     } 
    } 
    catch (SQLException e){e.printStackTrace();} 
} 

現在我已經從用於購買到所謂的ShoppingCartBean另一個bean的項目發送ID網站上的按鈕。

<h:form prependId="false"> 
    <h:commandLink id="addToCart" 
     action="#{shoppingCartBean.addToCart(item.id)}" 
     styleClass="btn btn-default"> 
     <i class ="icon-search"></i> #{msgs.addToCart} 
    </h:commandLink> 
</h:form> 

之後已經發送了item.id數據我shoppingCartBean,我希望選擇從我前面裝數組對應id項目和整個項目添加到新陣列,這樣我可以打印清單項目在稍後時間給我的用戶。但是我完全不知道如何做到這一點。

編輯:誤格式化 編輯:試圖澄清問題

+0

你如何選擇項目?!請發佈您的'xhtml'代碼 – Scorpion 2015-01-04 14:10:18

+0

感謝您在我的問題蠍子中的攔截,我害怕我可以從您的問題中看到我沒有很好地說我的短語。 上面的xhtml代碼將item.id發送到shoppingCartBean,它在那裏我希望獲取該信息,查看我的舊項目數組,找到相應的項目並將其添加到一個新的數組中,以便以後可以打印時間。我希望這是有道理的,生病嘗試編輯我的原始帖子 – Snigern 2015-01-04 14:21:04

+0

好的。我會盡可能多地回答您的問題,您可以將數據庫數據添加到列表中,並使用''或''顯示此列表,並根據需要顯示任何列,並添加一個列,其中包含一個按鈕,行「並將其添加到您想要使用操作屬性。我希望這是你想要的。它像[this](http://www.primefaces.org/showcase/ui/data/datatable/selection.xhtml) – Scorpion 2015-01-04 14:36:11

回答

0

只需發送整個項目#{item}而不只是它的ID #{item.id}的。

換句話說,而不是

action="#{shoppingCartBean.addToCart(item.id)}" 

action="#{shoppingCartBean.addToCart(item)}" 

public void addToCart(Item item) {}