我已经使用Flex 4.5,Java,BlazeDS和Spring开发了一个Web应用程序。
我刚刚发现,当我从服务器以ArrayCollection的形式获取集合(java.util.Set)时,在Flex Web应用程序中对ArrayCollection进行排序并将其发送回服务器,服务器将以未排序的java的形式接收此集合。 util.Set。
关于如何在将集合发送到服务器时如何使集合保持排序的任何建议?
最佳答案
您需要在AS端使用一个对象,在Java端使用一个Map。在AS中,将您的arraycollection中的所有元素放在这样的一个对象中
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);
}
之后,将obj发送到Java端-AS对象将序列化为Java Map。在服务器端,您将把位置作为地图中的键,因此您将能够重建订单(Java代码是微不足道的,因此在这里不打算写下来)。