项目中有个获取地域信息的方法。以前默认传入0,查询中国下一级的所有地名。-1属性有且仅有一个地名是中国。可是客户要求在地域信息的时候必需要含有中国。以前在springMVC中咱们使用对象来直接解析传进来的参数。以前传入数组都是单个输入一个String类型,逗号分隔。到后台进行分隔。而后封装为list集合去查询。我想既然对象中普通的String类型可以接收。直接再实体类里面建立一个数组属性。前端直接赋值如何。请求的参数以下。 前端
$.ajax({ url : ******, type : 'POST', data : { parentIds : new Array(-1,0) }, success : function (data) { doSomeing(); }, error : function(e){ wbAlert("获取限制区域出错,请返回重试","warning",3000); } });
请求时直接报了错。参数封装不到对象属性里面。看请求的属性键值后面都跟了[]符号。把对象撤掉,直接使用键名接收可以接收到ajax
@RequestMapping(value = "/wbRegion", method = RequestMethod.POST) @ResponseBody public List<WbRegion> wbRegion(@RequestParam(value = "parentIds[]") Double[] parentIds) throws SQLException { List<WbRegion> list = new ArrayList<WbRegion>(); ...... return list; }
这样我又不能把parentIds[]封装到对象的属性里面去。因此去网上找资料,耗费了挺长时间,找到一个请求方式,可以将数组封装到对象里面spring
$.ajax({ url : ***, type : 'POST', traditional : true,//阻止深度序列化 data : { status : false, parentIds : new Array(-1,0) }, success : function (data) { dosomeing(); }, error : function(e){ wbAlert("获取限制区域出错,请返回重试","warning",3000); } });
这样的话,请求时候的参数没有后面的[]。在对象里面使用一个list属性可以接收的到。数组