当作为ArrayCollection发送并作为java.util.Set在服务器上接收时,我如何保持集合的排序顺序



我使用Flex 4.5、Java、BlazeDS和Spring开发了一个web应用程序。

我刚刚发现,当我从服务器获取一个集合(java.util.Set)作为ArrayCollection,在Flex web应用程序中对ArrayCollection进行排序并将其发送回服务器时,该集合被服务器接收为未排序的java.util.Set。

关于我如何保持集合排序时发送到服务器的任何建议?

您需要在AS端使用一个对象,在Java端使用一个Map。在AS中,将数组集合中的所有元素放在一个对象中,就像这样

            var list:ArrayCollection = new ArrayCollection();
            var obj:Object = new Object();
            list.addItem("test");
            list.addItem("test2");
            for(var i=0;i<list.length;i++){
                obj[i] = list.getItemAt(i);
            }

之后,将对象发送到Java端——一个AS对象将被序列化为Java Map。在服务器端,您将把位置作为映射中的键,因此您将能够重新构建顺序(Java代码很简单,因此我不打算在这里写下来)。

您可以使用SortedSet

-> http://download.oracle.com/javase/6/docs/api/java/util/SortedSet.html

为什么需要在运输中进行排序?我只会在服务器接收到它时对它进行排序。

最新更新