SpringMVC接收数组参数

3 月,跳不动了?>>> SpringMVC接收数组参数

最近使用SpringMVC接收数组参数遇到一些问题,记录在此,最后是解决办法。


问题描述:前端传参为[1,2,3,4,5],后端使用发现,数组的第一个元素会被封装为[1,最后一个元素会被封装为5],这样是有问题的。

方式一前端传参:

SpringMVC接收数组参数

方式一后端接收:

SpringMVC接收数组参数

 

到网上找了半天,都说使用下面这种方式接收,结果还是一样

@RequestParam(value = "photos[]")

方式二前端传参:

SpringMVC接收数组参数

方式二后端接收:

SpringMVC接收数组参数

 

方式三前端传参:

SpringMVC接收数组参数

方式四后端接收:

SpringMVC接收数组参数

如果前端传参为逗号分隔的形式,没有中括号,后端接收后可以正常解析为数组格式。如果前端必须传递带中括号的方式,例如方式1,后端可以将中括号等符号进行替换为只有逗号拼接格式的字符串,然后使用spilt转换为数组或者集合进行处理也可以。

 

方式五前端传参:

SpringMVC接收数组参数

方式五后端接收:

SpringMVC接收数组参数

这种方式也可以接收,即前端传参为photos=1&photos=2&photos=3&photos=4&photos=5这种格式的。

 

Refer:

1、http://www.cnblogs.com/bluecoding/p/8205894.html

2、https://my.oschina.net/aronykl/blog/1507082