0
点赞
收藏
分享

微信扫一扫

基于@RequestBody 获取前端数据的自定义参数注解,处理泛型和优化@RequestBody

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),

举报

相关推荐

0 条评论