2015-01-04 34 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) {}