2017-12-11 4 views
0

Ich versuche gerade, ein ResultSet in einer h: dataTable in JSF anzuzeigen.JSF ResultSet in h: dataTable mit dynamischen Spalten

Im Grunde mache ich eine SQL-Anweisung, die auf der Website eingefügt werden kann und ich möchte das Ergebnis in einer Tabelle anzeigen. Ich kann keine Modellklassen erstellen, da die verwendeten Tabellen ebenfalls dynamisch sind. Der schwierige Teil ist die Tatsache, dass ich nicht weiß, wie viele Spalten es im ResultSet gibt, noch die Datentypen (derzeit bekomme ich diese aus dem ResultSetMetaData).

Wie würde ich etwas mit dynamischen Spalten und Spalteninhalt (verschiedene Datentypen) in einer Tabelle auf einer Website mit JSF anzeigen?

Vielen Dank im Voraus.

+1

Der nächste Mal versuchen, im Klar java so etwas wie dies den Druck und versuchen, 'Extrapolation' zu JSF/XHTML/EL/... Das ist exactely, was die 'Antwort' tut ... – Kukeltje

Antwort

0

Haben Sie in Ihrer verwalteten Bean eine Datenstruktur wie List<Map<String, Object>> results, um die Ergebnisse zu speichern. Verwenden Sie auf der UI-Seite 2 verschachtelte ui:repeat Elemente anstelle einer h:dataTable. Äußere Wiederholung wird Schleife Zeilen (results), innere Wiederholung wird Schleife Spalten (result.keySet()), jede Zelle erhält ihren Wert von result.get(fieldName).

Nicht-getestet UI-Code:

<table> 
    <ui:repeat value="#{mb.results}" var="result"> 
     <tr> 
      <ui:repeat value="#{result.keySet()}" var="fieldName"> 
       <td> 
        #{result.get(fieldName)} 
       </td> 
      </ui:repeat> 
     </tr> 
    </ui:repeat> 
</table> 
Verwandte Themen