0

私は単にいくつかのサブ行を私のp:dataTable. 私は何人でも買える車のリストを持っています。これをデータテーブルに表示したい。最初の行には車に関する情報が含まれており、次の行には購入者に関する情報が含まれています。このパターンは各車で繰り返されます。

以下は、バイヤーの配列を持つ私の車の豆です(ゲッターとセッターはここでは省略されています)-

public class Car {    
    private int id;
    private String name;
    private String model;
    private Buyer[] 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>
4

1 に答える 1