Datenstruktur für RichFaces subTable

janpaet

Grünschnabel
Hallo zusammen,
ich würde gern das Beispiel für subTable nachvollziehen.
Weiß jemand, ob irgendwo der Source-Code für die Bean "report" abgebildet ist, damit ich mir mal die benötigten Strukturen ansehen kann?

Vielen Dank und Grüße
Jan
 
Hallo Sentoo,
vielen Dank erst einmal.

Ich würde gern in Erfahrung bringen, mit welcher Struktur die Daten für die dataTable und subTable zur Verfügung gestellt werden müssen.
Eine Liste für die DataTable, deren Einträge wiederum jeweils eine Liste für die SubTable enthalten?

Viele Grüße
Jan
 
Hallo Jan,

jup, genau so.

Java:
package de.tutorials.subtable;
// ... die imports

// Die Klasse meldest Du in der faces-config.xml an ...
public class ManagedBean {

  // Liste mit den Informationen für die Zeilen der Haupttabelle.
  private List<SchulKlasse> schulKlassen;

  // Die Methode wird von der h:dataTable oder rich:dataTable o.ä.
  // aufgerufen, um die informationen für die Haupttabelle anzuzeigen.
  public List<SchulKlasse> getSchulKlassen() {
    return schulKlassen;
  }

  /* Eine inner class nehme ich nur, weil es so einfach im Forum zu
   * posten ist. Das sollte eine separate Klasse sein. Der Name sollte
   * auch zu deinem Problem passen ... :) */
  public class SchulKlasse {
    private int klasse; //z.b. 9 oder 10
    private String zusatz; // z.b. a oder b
    // ... mehr Attribute die in der Haupttabelle angezeigt werden sollen ...

    // Jeder Eintrag in der Liste master (s.o.) hat wiederum eine Liste
    // mit Detailinformation.
    private List<Schueler> schueler;

    // Die Methode wird von der rich:subTable aufgerufen, um an die Details
    // zu gelangen.
    public List<Schueler> getSchueler() {
      return schueler;
    }

    // gleicher Grund wie oben NICHT übernehmen ...
    public class Schueler {
      private String name; // Lischen Müller
      private int alter; // 10
    }
  }
}

Code:
<h:datatable value="#{managedBean.schulKlassen}" var="klasse">
   <!--  Die h: oder rich:column nicht vergessen. -->
   <rich:subtable value="#{klasse.schueler}" var="detail">
            <!--  Die h: oder rich:column nicht vergessen. -->
   </rich:subtable>
</h:datatable>
 
Zurück