spring MVC后台处理数组对象。

list类型的参数,接收前台的数组值,实验了一下,结果还真可以。
不用绑定到对象里面。
当然我这个是前台传递了个包含的是string的数组到后台,然后,后台用list来接收。
具体如下:

前台代码:

//发送请求到后台,带数组形式的数据。 
function testList() { 
    var data = getTreeViewCheckedData(); 
    $.ajax({ 
        url: APP_NAME + "xxxx/testList", 
        data: { 
            list:data 
        }, 
        dataType: "json", 
        success: function (data) { 
        } 
    }); 
} 
//获得数据---以数组的形式存储 
function getTreeViewCheckedData() { 
    var checkedData = []; 
    $('#shareSetting').find('ol.bonsai input:checkbox:checked').each(function () { 
            checkedData.push($(this).val()) 
        } 
    ); 
    return checkedData; 
}

后台代码:

	//方式一,用list接收前台的数组参数。 
    @RequestMapping(value = "/testList") 
    @ResponseBody 
    public JsonResult testList(@RequestParam(required = false, value = "list[]") List<String> list){ 
        LOG.debug("---------------XxxxController: testList---------------"); 
        LOG.debug("---------------list:\t" + list); 
        return new JsonResult(true,"ok ",null); 
    } 
	 
	//方式二,用数组接收前台的数组参数。然后转化成list,虽然没必要。 
    @RequestMapping(value = "/testList") 
    @ResponseBody 
    public JsonResult testList(@RequestParam(required = false, value = "list[]") String[] list){ 
        LOG.debug("---------------XxxxController: testList---------------"); 
        LOG.debug("---------------list:\t" + list); 
		List<String> newList = Lists.newArrayList(Arrays.asList(list)); 
        return new JsonResult(true,"ok ",null); 
    }

注意的地方:

value = "list[],这个好像不能省,

另外你要是修改方法上的参数的话,就得重启一下,不然得不到值

这个list要和前台的数据一模一样。







评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!