springMVC中前端传入数组对象属性接收

项目中有个获取地域信息的方法。以前默认传入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属性可以接收的到。数组

相关文章
相关标签/搜索