2017-05-17 8 views
0

Ich habe eine List<List<String>> und ich versuche, die Daten in einem Primefaces/JSF dataTable anzuzeigen. Die Liste würde wie folgt aussehen:Anzeigen von DataTable mit zwei verschachtelten Listen

[["1_1", "1_2", "1_3"], ["2_1", "2_2", "2_3"], ["3_1", "3_2", "3_3"]] 

Die Ergebnistabelle muss wie folgt aussehen:

1_1 | 1_2 | 1_3 
________________ 
2_1 | 2_2 | 2_3 
________________ 
3_1 | 3_2 | 3_3 

Wahrscheinlich brauche ich so etwas wie ein ui:repeat aber leider kann ich nicht eine Lösung finden. Ich bin neu in JSF und PrimeFaces und hoffe auf Ihr Verständnis.

Kann jemand helfen?

+2

Versuchen Sie es mit https://www.primefaces.org/showcase/ui/data/datatable/columns.xhtml –

+3

Warum verwenden Sie eine solche unregelmäßige Datenstruktur? Es wäre viel einfacher, wenn Sie Ihre interne Liste in ein Objekt konvertieren und diese einzelne Liste als Wert von 'p: dataTable' festlegen. –

+1

Wie 'List ', die 'x1, x2 & x3' Eigenschaften enthält, um' "1_1", "1_2", "1_3" 'Werte zu halten. –

Antwort

0

Sie können diese Lösung versuchen, habe ich beide html <table> und JSF <h:dataTable>.

@ManagedBean 
public class MyBean { 
    private List<List<String>> list = new ArrayList<List<String>>(); 

    public MyBean(){ 
     for(int i=1; i <=3; i++){ 
      List<String> newList = new ArrayList<String>(); 
      for(int x=1; x <=3; x++){ 
       newList.add(i + "_" + x); 
      } 
      list.add(newList); 
     } 
    } 
    public List<List<String>> getList(){ 
     return list; 
    } 
} 

Mit <table> und <ui:repeat>:

<table> 
    <ui:repeat var="list" value="#{myBean.list}"> 
    <tr> 
    <ui:repeat var="newlist" value="#{list}"> 
     <td>#{newlist}</td> 
    </ui:repeat> 
    </tr> 
    </ui:repeat> 
</table> 

<h:dataTable> Mit jeder List<String> in der Liste müssen gleiche Größen haben, wenn nicht, werden Sie IndexOutOfBoundsException erhalten:

<h:dataTable value="#{myBean.list}" var="list"> 
    <h:column> 
    #{list.get(0)} 
    </h:column> 
    <h:column> 
    #{list.get(1)} 
    </h:column> 
    <h:column> 
    #{list.get(2)} 
    </h:column> 
</h:dataTable> 
Verwandte Themen