我将两个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);
}
}
}
}
}
我正在从集合转换到列表,因为我认为从列表中检索数据会更方便。
答案 0 :(得分: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>
您可以通过订单对象访问产品字段。
你做了什么: