主要说到传递参数类型为list
一般情况我们在ajax提交数据,在controller中接收从参数,用的是@RequestParam,此时ajax配置如下:
{
contextType:"application/x-www-form-urlencoded",//默认
type:"post"
}
也就是form表单提交的时候,当然如果参数是实体,只要提交的data对应对象与实体属性一样,spring自动进行封装,下面就是关于复杂类型的参数。
list:
对于单个参数为list的,ajax配置如下:
{
contextType:"application/json",
type:"post",
data:Json.stringify(data)
}
那么在后台则用@RequestBody进行取值,当然以上data是数组。
那么问题1:通过application/x-www-form-urlencoded能否实现参数的自动封装?
可以将参数封装到一个对象中,比如bean如下
public class User{
List<Addr> addrs;
}
class Addr{
String no;
String name;
}
提交时参数:
attrs[0].no=1&
attrs[0].name=2
attrs[1].no=3&
attrs[1].name=4