JSF -> mit JavaScript veränderte Werte aus ListBox der Bean zuweisen

NotABugAFeature

Grünschnabel
moin!
Zuerst eine kurze Einführung. Ich habe in einem Portlet eine JSF-Seite, auf der ich zwei Multiselect Listboxen (sorry for mein Denglisch :eek: ) habe. Diese Listboxen fülle ich mit selectitems (z.B. Städtenamen) (Die selectItems sind jeweils Listen in einer zugehörigen Bean). Jetzt habe ich noch ein paar Buttons, mit denen ich per JavaScript munter auf die zwei Listboxen zugreifen kann.
Damit man sich jetzt bildlich was vorstellen kann:
In der 1. Listbox lade ich z.B. alle Städte die in Niedersachsen vorhanden sind. In meine 2. Listbox will ich nun die Städte (von der 1.Listbox) übertragen, die z.B. an einer Umfrage teilnehmen sollen. Dazu nutze ich die Buttons (mit denen ich JavaScript-Funktionen aufrufe) die die selektierten Städte von der einen in die andere Listbox transferieren. (Ich nutze JavaScript um unnötige Requests an den Server zu vermeiden).
Das Problem taucht dann auf, wenn ich die "neuen" Daten aus den Listboxen an den Server schicken möchte, bzw. meiner Bean zuweisen will. Denn wenn ich den Request losschicke werden die mit JavaScript veränderten Daten aus den Listboxen rausgeschmissen und wieder die selectItems aus der Bean reingeschrieben.

Jetzt meine Frage: Wie (bzw. geht es überhaupt?) kann ich die mit JavaScript getätigten Änderungen an den beiden Listen mit selectItems meiner zugehörigen Bean zuweisen?

Kann ich z.B. über ne Action oder einen ActionEvent von nem Button JavaScript-Werte (als Parameter oder so) übertragen? Oder kann ich mit "Hidden-Fields" die Daten "zwischenspeichern"?
 
Habe das jetzt mit nem ValueChangeListener realisiert, den ich auf deine extra MultiSelectBox gelegt habe. Da mein Submit-Button (Design-bedingt) in einem anderem FORM liegt als meine ListBoxen, habe ich noch eine MultiSelectListbox zu der FORM (vom Button) hinzugefügt und mittels css auf width=0 gesetzt. Diese MultiSelectListbox fülle ich jetzt einfach mittels der vorhandenen JavaScript-Methoden.
 
Klappt doch noch nicht so, wie ich mir das wünsche. Bekomme nämlich in meiner
Code:
handleValueChange()
-Methode mit
Code:
valueChangedEvent.getNewValue().getClass()
-->
Code:
class [Ljava.lang.String;
(also nen String-Array) zurück, das ist aber wohl leer!? :(
 

Neue Beiträge

Zurück