5

ちょっと問題があります。JSF で DataTable にデータを入力したいときは、最初にモデルを作成してから、それを自分のビューで使用する必要があります。ここのPrimefacesサンプルのように。

次に、Web サービスから取得したデータを表示する DataTable を作成する必要があります。列がいくつになるかわかりませんし、名前もわかりません... 賢明な解決策をお勧めできますか?

PS。Webサービスからデータを返す方法もわかりません-まだ決定中です。


編集

public Bean() {
    columns = new ArrayList<String>();  
    rows = new ArrayList<Map<String, Object>>();         
    populateColumns(columns,4);   

    for(int i = 0 ; i < 6 ; i++)  
    {               
        Map<String,Object> m = new HashMap<String,Object>();
        m.clear();          
        for(int j = 0 ; j < 4 ; j++)  
        {
            m.put("Column" + j, "sth" + j + i);
        }                                               
        rows.add(m);
    }       
}

private void populateColumns(List<String> list, int size) {  
    for(int i = 0 ; i < size ; i++)  
        list.add("Column" + i);
}  
4

1 に答える 1

7

List<Map<String, Object>>プロパティを表す でデータを収集しrowsます。はMap、列名でキー付けされた列を表します (必要に応じてcolumn1column2column3、 などで自動生成され"column" + iます)。List<String>これらの列名を、プロパティを表す個別に収集しcolumnsます。最後に、次のように表示します<p:columns>

<p:dataTable value="#{bean.rows}" var="row">
    <p:columns value="#{bean.columns}" var="column">
        #{row[column]}
    </p:columns>
</p:dataTable>
于 2012-12-20T10:50:35.980 に答える