Hi Leute,
bin neu und wende mich mit meinem Problem an Euch, nachdem ich seit knapp einer Woche auf der Stelle trete. Ich realisiere ein firmeninternes Projekt mit Java/Struts/Hibernate.
Original Sourcecode darf ich natürlich nicht posten, da es Eigentum der Firma ist, auch wenn ich der einzige Entwickler bin und es quasi "mein" Projekt ist. Ich hoffe dafür habt Ihr Verständnis.
Aber das Problem lässt sich auch so gut darstellen.
Folgender Sachverhalt:
Ich habe ein HTML Formular. Dieses ist zu Beginn leer und mittels JavaScript habe ich mir ein paar Funktionen geschrieben, mit denen ich dynamische Eingabefelder generiere (also ganz simple <input> HTML Elemente).
Das Ganze funktioniert in einer zweistufigen Hierarchie. Das heisst: Man kann Elternelemente generieren und zu jedem Elternelement auch beliebig viele Kinderelemente. Das Ganze habe ich mit JavaScript über den DOM Baum realisiert und es funktioniert problemlos.
Nun werden die Eingaben in den generierten <input> Feldern mittels Struts an meine Java Programmlogik übergeben. Die Werte stehen bei der Übergabe in einer HashMap in der Form:
Mittels Iterator über das daraus resultierende "keySet" ziehe ich mir die Schlüssel raus und sortiere diese.
An diesem Punkt wirds viell. ein wenig umständlich für Manchen Leser, aber ich habe die nächsten Schritte so realisiert, weil es für mich verständlicher war und ich gerne eine "eigene" Lösung dafür finden wollte.
Also die Schlüssel werden von meiner eigens geschriebenen Klasse sortiert und zwar so, dass ich erstmal die ID, die ich von meinem HTML <input> Element erhalte, parsen muss, da es sich um einen String handelt. Die ID der Elemente sieht folgendermaßen aus:
Der erste Int-Wert gehört immer zum Elternelement, der zweite Int-Wert zum Kindelement.
Einfaches Beispiel:
Elternelement 1 hat die ID:
Kindelement 1 hat die ID:
Kindelement 2 hat die ID:
usw....
Ich hoffe es ist verständlich was ich meine.
Gut, nach dem Parsen der ID baue ich mir daraus eine Liste, die wiederum Listen enthält, und zwar sortiert nach den IDs.
Das sieht als Pseudocode so aus:
Das hat den Hintergrund, dass ich meine IDs besser verarbeiten kann, wenn jede zusammenhängende ID-Gruppe in einer eigenen Liste steht.
Aus diesen Listen baue ich mir nun mittels "JDOM" ein XML Dokument welches dann letzten Endes als
(byte-Array) in ein BLOB Feld in meiner Datenbank gesschrieben wird.
So, langsam wird der Text echt lang, also kürze ich es jetzt ein wenig und komme zum direkten Problem, welches auf all dem aufbaut:
Ich möchte das Ganze nun rückwärts machen, also aus dem BLOB Feld der DB mein XML Dokument lesen, parsen und daraus dann wieder HTML Elemente generieren.
Wozu? Nun ja, Weil das der notwendige Schritt ist, wenn ein Anwender in meiner WebApp etwas editieren möchte. Dann müssen bereits angelegte DB-Objekte mit zuvor gespeicherten Werten diese Werte auch wieder zum Editieren in die selben <input> Felder schreiben.
Mein Problem, an dem ich momentan stehe:
WIE genau übergebe ich meine ausgelesenen Werte an Struts? Und wie genau generiere ich meine <input>-Felder um sie mit den übergebenen Werten zu füllen?
Die ausgelesenen Werte verarbeite ich im Moment per "SAXBuilder" was auch gut klappt nur eben der Sprung hin zur Übergabe an Struts will nicht klappen...
Ich hoffe mir kann jemand ein wenig auf die Sprünge helfen!!
Falls das jetzt alles zu viel Overkill war
dann poste ich morgen gerne mal etwas Sourcecode.
Gruss
=_=_=
bin neu und wende mich mit meinem Problem an Euch, nachdem ich seit knapp einer Woche auf der Stelle trete. Ich realisiere ein firmeninternes Projekt mit Java/Struts/Hibernate.
Original Sourcecode darf ich natürlich nicht posten, da es Eigentum der Firma ist, auch wenn ich der einzige Entwickler bin und es quasi "mein" Projekt ist. Ich hoffe dafür habt Ihr Verständnis.
Aber das Problem lässt sich auch so gut darstellen.
Folgender Sachverhalt:
Ich habe ein HTML Formular. Dieses ist zu Beginn leer und mittels JavaScript habe ich mir ein paar Funktionen geschrieben, mit denen ich dynamische Eingabefelder generiere (also ganz simple <input> HTML Elemente).
Das Ganze funktioniert in einer zweistufigen Hierarchie. Das heisst: Man kann Elternelemente generieren und zu jedem Elternelement auch beliebig viele Kinderelemente. Das Ganze habe ich mit JavaScript über den DOM Baum realisiert und es funktioniert problemlos.
Nun werden die Eingaben in den generierten <input> Feldern mittels Struts an meine Java Programmlogik übergeben. Die Werte stehen bei der Übergabe in einer HashMap in der Form:
Java:
HashMap<String, String[]>
Mittels Iterator über das daraus resultierende "keySet" ziehe ich mir die Schlüssel raus und sortiere diese.
An diesem Punkt wirds viell. ein wenig umständlich für Manchen Leser, aber ich habe die nächsten Schritte so realisiert, weil es für mich verständlicher war und ich gerne eine "eigene" Lösung dafür finden wollte.
Also die Schlüssel werden von meiner eigens geschriebenen Klasse sortiert und zwar so, dass ich erstmal die ID, die ich von meinem HTML <input> Element erhalte, parsen muss, da es sich um einen String handelt. Die ID der Elemente sieht folgendermaßen aus:
Java:
Integer-Wert | Sonderzeichen als Seperator | Integer-Wert
Der erste Int-Wert gehört immer zum Elternelement, der zweite Int-Wert zum Kindelement.
Einfaches Beispiel:
Elternelement 1 hat die ID:
Java:
1?
Kindelement 1 hat die ID:
Java:
1?1
Kindelement 2 hat die ID:
Java:
1?2
usw....
Ich hoffe es ist verständlich was ich meine.
Gut, nach dem Parsen der ID baue ich mir daraus eine Liste, die wiederum Listen enthält, und zwar sortiert nach den IDs.
Das sieht als Pseudocode so aus:
Java:
[ [1?, 1?1, 1?2] [2?, 2?1, 2?2] [3?, 3?1] ]
Das hat den Hintergrund, dass ich meine IDs besser verarbeiten kann, wenn jede zusammenhängende ID-Gruppe in einer eigenen Liste steht.
Aus diesen Listen baue ich mir nun mittels "JDOM" ein XML Dokument welches dann letzten Endes als
Java:
byte[]
So, langsam wird der Text echt lang, also kürze ich es jetzt ein wenig und komme zum direkten Problem, welches auf all dem aufbaut:
Ich möchte das Ganze nun rückwärts machen, also aus dem BLOB Feld der DB mein XML Dokument lesen, parsen und daraus dann wieder HTML Elemente generieren.
Wozu? Nun ja, Weil das der notwendige Schritt ist, wenn ein Anwender in meiner WebApp etwas editieren möchte. Dann müssen bereits angelegte DB-Objekte mit zuvor gespeicherten Werten diese Werte auch wieder zum Editieren in die selben <input> Felder schreiben.
Mein Problem, an dem ich momentan stehe:
WIE genau übergebe ich meine ausgelesenen Werte an Struts? Und wie genau generiere ich meine <input>-Felder um sie mit den übergebenen Werten zu füllen?
Die ausgelesenen Werte verarbeite ich im Moment per "SAXBuilder" was auch gut klappt nur eben der Sprung hin zur Übergabe an Struts will nicht klappen...
Ich hoffe mir kann jemand ein wenig auf die Sprünge helfen!!
Falls das jetzt alles zu viel Overkill war
Gruss
=_=_=