1

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

产品来源:

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);                    
                }
            }
        }
    }
}

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

4

1 回答 1

2

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

<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>

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

更新

你做了什么:

  • 为 Order 和 Product 类的所有字段指定 getter 和 setter
  • 为您的订单集指定 getter 和 setter
  • 创建这个集合,把你所有的订单放在那里
  • 像我之前展示的那样迭代它
于 2013-02-11T10:10:07.773 回答