我只是想在我的p:dataTable
. 我有一份可供任何人购买的汽车清单。我想在数据表中显示这个。其中第一行包含有关汽车的信息,接下来的行包含有关买方的信息。每辆车都会重复这种模式。
下面是我的汽车 bean,它有一个买家数组(这里省略了 Getter 和 setter)-
public class Car {
private int id;
private String name;
private String model;
private Buyer[] buyer;
}
买方 bean 如下所示 -
public final class Buyer {
private int id;
private String name;
private String address;
}
最后是控制器,其中包含汽车列表-
@ManagedBean
@ViewScoped
public class Seller implements Serializable{
private List<Car> list;
}
根据丹尼尔的建议,我以这种方式实现了它-
<p:panel>
<h:form>
<p:dataTable id="dataTable" var="car" value="#{seller.list}">
<p:column style="width:4%">
<p:rowToggler />
</p:column>
<p:column style="width:32%">
<f:facet name="header">
Id
</f:facet>
<h:outputText value="#{car.id}" />
</p:column>
<p:column style="width:32%">
<f:facet name="header">
Name
</f:facet>
<h:outputText value="#{car.name}" />
</p:column>
<p:column style="width:32%">
<f:facet name="header">
Model
</f:facet>
<h:outputText value="#{car.model}" />
</p:column>
<p:rowExpansion>
<p:dataTable var="buyer" value="#{car.buyer}">
<p:column headerText="Id">
<h:outputText value="#{buyer.id}" />
</p:column>
<p:column headerText="Name">
<h:outputText value="#{buyer.name}" />
</p:column>
<p:column headerText="Address">
<h:outputText value="#{buyer.address}" />
</p:column>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>
</h:form>
</p:panel>