spring boot 默认的参数处理,不能支持泛型的处理,例如:
UserVO(data=java.lang.Object@70cd5f86, username=安安, realName=null, age=null, isShow=null, phones=null, departmentVO=DepartmentVO(name=null, code=哈哈))
其中data是DepartmentVO,但是返回的是Obejct 是因为,spring boot原生的不支持泛型的处理。
@RequestBody参数注解是支持泛型的,但前提是ajax的请求必须是
contentType :“application/json”,
data : JSON.stringify(data),
UserVO(data=DepartmentVO(name=啊啊, code=null), username=null, realName=null, age=null, isShow=null, phones=null, departmentVO=DepartmentVO(name=null, code=哈哈))
这里可以看到数据是可以输出来的。但是这种情况不支持
带有.的参数名称泛型处理(例如:user.name=111)
UserVO(data=DepartmentVO(name=啊啊, code=null), username=null, realName=null, age=null, isShow=null, phones=null, departmentVO=DepartmentVO(name=null, code=哈哈))
可以看到,泛型的问题解决了。
优化@RequestBody 的ajax请求必须是JSON字符串请求的问题测试:
UserVO(data=DepartmentVO(name=啊啊, code=null), username=null, realName=null, age=null, isShow=null, phones=null, departmentVO=DepartmentVO(name=null, code=哈哈))
可以看到,没有:
contentType :“application/json”,
data : JSON.stringify(data),
依然可以接受到数据
注意:这种方式,只能使用与JSONObject的情况,如果要传递JSONArray的数据,还是需要指定
contentType :“application/json”,
data : JSON.stringify(data),