这几天在做一个小项目,其中需要在后台接收非基本类型对象的数组,在网上找了一些资料实验了下并没有取得如期的效果,后来自己摸索了一下发现了如下的方法可以很好的传递数据;
前台使用JSON对象的格式如下:
shopCarInfo[0].petId: "19ab5eb2-b2cb-46e2-ad80-a3b820804055"shopCarInfo[0].shopCarCount: "1"shopCarInfo[0].shopCarId: "dbe15fd0-e11c-4019-975c-a61d965cd912"shopCarInfo[1].petId: "ffdd423d-9895-436e-a5ee-9ec54df7b57e"shopCarInfo[1].shopCarCount: "1"shopCarInfo[1].shopCarId: "e26d539d-10a4-450b-86cd-a426c9dd9e96"shopCarInfo[2].petId: "6a05a0ce-b23e-43ed-972d-c80250a453db"shopCarInfo[2].shopCarCount: "2"shopCarInfo[2].shopCarId: "e3f8b503-aa97-498b-989c-4d73a1821d63"userId: "ef6b8fc1-f556-4da5-8427-ec1a7707d1e1"
使用如下的方式组成JSON对象:
var buyParam={}; for(var x=0;x<s.length;x++){ buyParam["shopCarInfo[" + x + "].shopCarId"]=shopCarId; buyParam["shopCarInfo[" + x + "].petId"]=petId; buyParam["shopCarInfo[" + x + "].shopCarCount"]=Count; } buyParam.userId=userIdCookie;
后台使用List集合进行接收,由于使用struts2,需添加set和get方法接收数据:后台会自动的创建对象并赋值然后存放在List集合中private List<ShopCar> shopCarInfo; public List<ShopCar> getShopCarInfo() { return shopCarInfo; } public void setShopCarInfo(List<ShopCar> shopCarInfo) { this.shopCarInfo = shopCarInfo; }