如何在Datatable中绑定两个类



我在将两个java类绑定到一个Datatable组件时遇到问题。我有两个管理豆产品和订单

产品来源:

public class Product {
    private Integer id;
    private String kategoria;
    private String symbol;
    private String opis;
    private Double cena;
    //getters and setters
    //.....
    //hashCode, equals methods
}

订单来源:

public class Order {
    private Product produkt;
    private Integer quantity;   
    public Order() {}
    public Order(Product product, Integer quantity) {
        this.produkt = product;
        this.quantity = quantity;
    }

    public void setProduct(Product produkt) {
        this.produkt = produkt;
    }
    public Product getProdukt() {
        return produkt;
    }
    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }
    public Integer getQuantity() {
        return quantity;
    }
}

我的问题是:如何将这个类Order绑定到<h:dataTable />组件以具有Poduct值和数量编号。我已经用setOrder和getOrder方法创建了ProductBean类

public List<OrderLine> getList() {
    List<OrderLine> l = new ArrayList<OrderLine>();
    for(OrderLine ol : list) {
        l.add(ol);
    }
    return l;
}
public void setList(Set<OrderLine> list) {
    if (this.list.isEmpty() )
        this.list = list;
    else {
        Iterator<OrderLine> it = this.list.iterator();
        for(OrderLine p : list) {
            while(it.hasNext()) {
                if(it.next().equals(p)) {
                    this.list.add(p);                    
                }
            }
        }
    }
}

我正在进行从集合到列表的转换,因为我认为从列表中检索数据会更方便。

为什么不想使用通用方法?

<h:dataTable value="#{productBean.getList}" var="o">
    <h:column>
        #{o.quantity}
    </h:column>
    <h:column>
        #{o.produkt.kategoria}
    </h:column>
    ...
    <h:column>
        #{o.produkt.cena}
    </h:column>
</h:dataTable>

您可以通过订单对象访问产品字段。

upd

你做了什么:

  • 为Order和Product类的所有字段指定getter和setter
  • 为您的订单集指定getter和setter
  • 创建此集合,将所有订单放在那里
  • 正如我之前展示的那样对其进行迭代

相关内容

  • 没有找到相关文章

最新更新