我在将两个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
- 创建此集合,将所有订单放在那里
- 正如我之前展示的那样对其进行迭代