Ich verwende die Auswahlliste von Richface und ich Ich möchte die rechte Seite mit einer Liste von SelectItems aus meiner Backing-Bean füllen.
Das Füllen der linken Seite ist kein Problem der Backing Bean, die rechte Seite ist jedoch problematisch.
Das habe ich derzeit
%Vor%BEARBEITEN:
Also habe ich die Rollen 'a', 'b', 'c' und 'd'.
Der Benutzer hat die Rollen "a" und "d", also sollten "a" und "d" auf der rechten Seite sein und "b" und "c" sollten auf der linken Seite sein.
BEARBEITEN:
Weitere Erklärung.
Ich habe drei Listen für den Benutzer.
Alle Listen haben den Datentyp ArrayList<SelectItem>
.
Ich brauche die Möglichkeit, einzelne Rollen zwischen der Listennummer 1 und der Listennummer 2 zu verschieben und dann die neuen Rollen zu speichern. Ich dachte, die Auswahlliste wäre das beste Richface-Objekt für den Job.
Sie möchten diesen Code:
%Vor%und in deiner Bean willst du:
%Vor%Wenn Sie Standardrollen erstellen möchten, fügen Sie einfach die Rollen in das Array "selectedRoles" ein (z. B. im Bean-Konstruktor). Auf diese Weise enthalten "selectedRoles" immer die Elemente auf der rechten Seite der Auswahlliste, während Elemente auf der linken Seite nicht im Array enthalten sind.
Hoffe, das hilft!
Es scheint, dass ich die Lösung gefunden habe.
%Vor% "#{aBean.rightSideValues}"
sollte auf die Liste oder das Array von verweisen
Objekte. Mit diesen Werten rechte Seite
der Auswahlliste wird ausgefüllt.
#{aBean.leftSideValues}
sollte auf die Liste des SelectItems zeigen
Objekt.
EINE ANMERKUNG - SelectItem-Objekt MUSS mit Objekten aus "#{aBean.rightSideValues}"
konstruiert werden.
Beispiel .
%Vor% Beachten Sie, dass SelectItem das erste Argument übernimmt und dieses Argument der Verweis auf SomeObject ist. In den Interna werden Rich Faces Objekte aus der "#{aBean.rightSideValues}"
mit Objekten aus der
#{aBean.leftSideValues}
mit Hilfe der Methode
SomeObject.equals()
Wenn Sie andere Werte als Text benötigen, müssen Sie einen Konverter erstellen.
Siehe Ссылка
Wie in RF 4.3.3 und wahrscheinlich auch früher müssen Sie auch die Hash-Methode Ihrer Modellklasse (Entity-Bean) überschreiben. Daher reicht es nicht aus, die equals-Methode für Ihren Konverter zu überschreiben. Folgendes wurde für mich und meine PubThread-Entity-Bean ausgearbeitet.
%Vor%Setzen Sie den Wert der Auswahlliste auf ein Array mit dem Wert von SelectItem.
Was auch immer Sie auf der rechten Seite anfangen, ist im Grunde nur der Standardwert der Pickliste:
%Vor%