ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
746
746
EMPFEHLEN
-
Hallo Allerseits!
Leider finde ich sowohl im Netz als auch in Büchern nicht wirklich Rat und langsam erschleicht sich mir das Gefühl, dass entweder irgendwas richtig faul ist oder ich bin einfach unfähig!
Folgendes Szenario:
Mal angenommen ich habe eine JSF-Seite (.xhtml-Datei), die mehrere Eingabefelder (<h:inputText... />) besitzt, die ihre Werte in verschiedenen Backing Beans/Managed Beans (Java-Klassen) übermittelt. Zum Beispiel ein Feld für den Nachnamen (mit der dazugehörigen Java-Klasse: Personal.java) und ein Feld für den bestellten Artikel (mit der dazugehörigen Java-Klasse: Warenkorb.java). Außerdem besitzt die Seite ein Save-Button, der wenn er betätigt wird die eingegebenen Daten in die Datenbank speichern soll (mit der dazugehörigen Java-Klasse: Jdbc.java).
Code der JSF-Seite:
Code der Personal.java-Klasse:HTML-Code:<table> <tr> <td><h:inputText id="Nachname" value="#{personal.nachname}" /></td> </tr> <tr> <td><h:inputText id="Artikel" value="#{warenkorb.artikel}" /></td> </tr> <tr> <td><h:commandButton action="#{jdbc.insertDataIntoDB}" value="Save" /></td> </tr> </table>
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
@ManagedBean (name = "personal") @SessionScoped public class Personal { private String nachname; public String getNachname() { return nachname; } public void setNachname(String nachname) { this.nachname = nachname; } }
Code der Warenkorb.java-Klasse:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
@ManagedBean (name = "warenkorb") @SessionScoped public class Warenkorb { private String artikel; public String getArtikel() { return artikel; } public void setArtikel(String artikel) { this.artikel = artikel; } }
Code der Jdbc.java-Klasse:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
@ManagedBean (name = "jdbc") @SessionScoped public class Jdbc { public String insertDataIntoDB() { Connection conn = null; Statement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_xyz", "username", "pw"); stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO db_xyz.tbl_bestellungen (Nachname, Artikel) VALUES (" + nachname + "," + artikel + ");"); } ... }
Bitte im Code der Jdbc-Klasse die letzte Zeile (stmt.executeUpdate) ignorieren. Die funktioniert natürlich so nicht, da ich schlecht einfach "nachname" und "artikel" schreiben kann ohne dass die Variablen/Werte der Jdbc-Klasse bekannt sind.
Und genau hier ist eben mein Problem!
Wie komme ich in meiner Jdbc-Klasse an die von mir eingegebenen Daten (Nachname und Artikel)?
Info: Ich möchte ungern all Variablen und all meine Logik in eine einzige Java-Klasse packen.
Ich wär Euch super dankbar, wenn ihr mir diesbezüglich weiterhelfen könntet.
Viele Grüße und vielen Dank im Voraus.Geändert von Fools (13.09.10 um 12:54 Uhr)
-
Also, so hüftsteif kann JSF 2.0 doch nicht sein?!
Bringt mir da z. B. die Annotation @Inject etwas? Oder hat das mit meinem Problem eher weniger zu tun?
-
Hallo Fools,
mit Dependency Injection liegst Du an der Stelle gar nicht so falsch. Als Bordmittel gibt es @ManagedProperty. Ich denke das würde in deinem Fall reichen.
Wie, das kannst Du z.B. in diesem Artikel nachlesen. Die Abschnitte "Using Managed Properties" und "Dependency Injection" solltest Du lesen.
Du müsstest also- die Klasse Jdbc um 2 Attribute ergänzen
- die Attribute mit der Annotation versehen
- die getter und setter bereitstellen
-
Hallo Sentoo,
hab dein Posting leider etwas zu spät gelesen, da ich nicht mehr damit gerechnet habe, dass noch jemand zurück schreibt.
Aber ich kann bestätigen, dass du mit @ManagedPorperty völlig recht hast. Damit hat es funktioniert!
Vielen Dank.
Ähnliche Themen
-
Interaktion JSP<->Java-Klasse
Von karstenkurt im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 4Letzter Beitrag: 06.02.08, 10:09 -
Interaktion zwischen C# und ASP.NET
Von xloouch im Forum .NET Web und KommunikationAntworten: 3Letzter Beitrag: 23.01.08, 12:32 -
Werteübergabe bei mehreren gleichen Feldern
Von devconproductions im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 23.02.06, 19:41 -
JSkype Java API zu Interaktion mit Skype
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 29.10.05, 21:21 -
interaktion zwischen 2 programmen
Von andreas_gierisch im Forum C/C++Antworten: 32Letzter Beitrag: 25.08.05, 08:45





Zitieren
Login





