SELECT in JSF ausgeben


#1

Hallo Welt,

ich habe ein riesen Problem!

In meiner Bean hole ich mir Daten über eine SELECT-anweisung aus der Datenbank und speichere diese in einer ArrayList. Diese wird mir auch ordnungsgemäß in der Kommandozeile (Console) ausgegeben.

Aber wie gebe ich dieses Array oder die View in der JSF-Page aus??? Habe schon etwas im Foren gefunden, aber es funktioniert nicht bei mir. Könnt ihr mir weiterhelfen?

hier mein Code der Managed Bean:

    private Inserat ins;
    private List ausgabe;

public String loadSearch() {
     

try {
        datenbank db = new datenbank();
       ResultSet rs = db.abfrage("SELECT * FROM `fahrt` INNER JOIN `Person` ON 
                                                        `Person`.`Username` = `fahrt`.`Username` INNER JOIN 
                                                        `Inserat` ON `Inserat`.`IID` = `fahrt`.`IID` WHERE 
                                                        `Inserat`.`Startort` = \"" +ins.getStartOrt()+ "\" AND 
                                                        `Inserat`.`Zielort` = \"" +ins.getZielort()+ "\"");
           
         
      List ausgabe = new ArrayList();   
      while (rs.next()) {
         
         for (int i=1;i<=3; i++){
           
              ausgabe.add(rs.getString(i));
        
        }
            
       }
    
           return "true";

            } catch (Exception e) {
            System.out.println(e.getMessage());
            ResultSet rs = null;
            return "false";
            }
     
     }

Und hier mein Code aus der JSF-Page:

[Javascript] <h:dataTable value="#{inserat_Controller.ausgabe}" var=“item”>
<h:column>
<h:outputLabel value="#{item}"/>
</h:column>
</h:dataTable>[/Javascript]

Ich bin mir nicht sicher ob ich überhaupt alle Tags brauche oder Attribute habe.

Danke für eure Antworten im Voraus…

MFG Stephan


#2

EDIT:

Das Resultset muss nicht zwangsläufig in der ArrayList gespeichert werden… falls ihr andere Vorschläge habt.

und das Ganze steht in einem OUTPUT-Tag (nur falls sich jemand über den Smiley wundert)

MFG Stephan


#3

Hallo,

die Datatable ist soweit richtig.

Das Ergebnis der SQL Abfrage in eine Liste zu speichern ist okay.
Die Liste, die du in der SQL Abfrage erstellst ist nur innerhalb deiner Funktion existent.

Die Liste sollte dann in

inserat_Controller.ausgabe

gespeichert werden, damit die Datatable auch die Werte daraus beziehen kann (bzw. diese iterieren kann)

VG