PrimeFaces 3 -> p:orderList speichert Änderung der Reihenfolge nicht

Kryptaesthesie

Erfahrenes Mitglied
Hallo,

ich möchte bei einer p:eek:rderList die Änderungen persistieren.
Leider wird meine neue Reihenfolge nicht in die Bean übernommen.

Java:
<p:orderList
    rendered="true"
    id="basicList"
    value="#{navigationHandler.orderList}"
    var="nav"
    itemValue="#{nav}"
    controlsLocation="left"
    effect="clip"
    converter="#{navigationConverter}"
>
    <p:column>
        #{nav.title}
    </p:column>
</p:orderList>

<p:commandButton value="#{adminMsg.save}" action="#{navigationHandler.saveOrder}" />

Das Ganze ist ummantelt von h:form.
Wenn ich aus dem Beispiel der PrimeFaces-Doku (http://www.primefaces.org/showcase/ui/orderList.jsf) den Dialog und Submit-Button übernehme, wird mir die richtige Reihenfolge auch nicht angezeigt.
Ich möchte gerne die neue Reihenfolge speichern und hatte dabei an navigationHandler.saveOrder() gedacht, die beim Abschicken zwar durchlaufen wird, aber mit der alten Reihenfolge von navigationHandler.orderList, welche vom Typ List<Navigation> ist.

Wo könnte der Fehler liegen?

Vielen Dank schon mal für eure Hilfe!
 
Also um Dinge in Java zu sortieren wird equals/hashcode verwendet. Versuche beide zu überschreiben und schreibe einen Unit test.

Vllt hilft dir auch: Commons collection dort gibt es eine "ausreichende" sort funktion oder (finde ich persönlich besser) googles gauava hier speziell das "Ordering"..

Edit: Comparator und Comparable könnten dich auch interessieren.

Gruß
 
Zuletzt bearbeitet:
In meiner p:eek:rderList gebe ich doch selbst die neue Order an.
Darum hilft mir das überschreiben von equals/hashcode nicht weiter, oder habe ich einen Denkfehler?
 
Versuch mal

<p:commandButton value="#{adminMsg.save}" action="#{navigationHandler.saveOrder}" update="@this"/>

Oder gibt der form eine id und dann

<p:commandButton value="#{adminMsg.save}" action="#{navigationHandler.saveOrder}" update=":id"/>
 
Zurück