项目中有个获取地域信息的方法。之前默认传入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);
}
});
请求时直接报了错。参数封装不到对象属性里面。看请求的属性键值后面都跟了[]符号。把对象撤掉,直接使用键名接收能够接收到
@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[]封装到对象的属性里面去。所以去网上找资料,耗费了挺长时间,找到一个请求方式,能够将数组封装到对象里面
$.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属性能够接收的到。