在使用Json传值并且使用@RequestBody注解的时候需要注意一些问题:
- 一个方法中只能有一个@RequestBody注解。
- 默认情况下@RequestBody标注的对象必须包含前台传来的所有字段。
第一条容易理解,因为RequestBody就是request的inputStream,这个流在第一次使用该注解后会关闭,后面的都会报错(stream closed)。
第二条如果没有包含前台传来的字段,就会报错:Unrecognized field xxx , not marked as ignorable,这是因为MappingJacksonHttpMessageConverter默认要求必须存在相应的字段。如果没有前台传来的某个字段,就会报错。。
解决方法有很多,可以增加一个字段来接收前台传来的这个值,如果存在多个字段,这种方式很不好(就算一个字段,如果没用,新增字段也不好)。
或者在前台往后台传值的时候,去掉无用的字段。这样还能减少网络传输的大小。
还有一些方法,这些方法主要是使用Jackson提供的json注解。
@JsonIgnore注解用来忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法时,和Filed效果一样。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。
@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要。这个注解还可以指定要忽略的字段。使用方法如下:
@JsonIgnoreProperties({ "internalId", "secretKey" })
指定的字段不会被序列化和反序列化。
相关推荐
今天小编就为大家分享快速解决SpringMVC @RequestBody 用map接收请求参数的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
浅析@ReponseBody和@RequestBody注解主要讲述了@ReponseBody的作用和@RequestBody的作用和springMvc内部是如何对他们进行解析的
NULL 博文链接:https://bijian1013.iteye.com/blog/2310240
主要介绍了详解SpringMVC @RequestBody接收Json对象字符串,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
模拟了基本前端与后端交互JSon数据,使用了Java语言+Maven+SpringMVC+Ajax @RequestBody+Json传输完成基本数据交互
NULL 博文链接:https://bijian1013.iteye.com/blog/2310236
主要介绍了Spring MVC参数校验的相关资料,主要是针对`@RequestBody`返回`400`的问题,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
SpringMVC @ModelAttribute应用SpringMVC @ModelAttribute应用
2.请求头中正确设置了Content-Type参数及参数值,但是在项目jar依赖中(pom.xml或build.gradle)没有添加处理json字符串的处理类
主要介绍了Spring MVC打印@RequestBody、@Response日志的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了SpringMVC restful 注解之@RequestBody进行json与object转换的相关资料,需要的朋友可以参考下
SpringMVC@RequestMapping(重点)@RequestParam@PathVariable示例
NULL 博文链接:https://zhaoshunxin.iteye.com/blog/1166266
常用来处理content-type不是默认的application/x-...好比:application/json或者是application/xml等,常常用来其来处理application/json类型 注意:@requestBody接收的是前端传过来的json字符串,而不是对象
SpringMVC精品资源-- 论坛:基于 SpringBoot + MyBatis + MySQL + Redis
本篇文章主要介绍了springMvc注解之@ResponseBody和@RequestBody详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
如果传输的是多层嵌套json对象,这个时候会就会出现数据丢失问题 @ResponseBody很好的解决了这个问题,它会把前台传输过来的json转化为后台对应的对象
说明: 本项目是为springMVC+spring+mybatis的集成项目,使用maven进行项目管理 版本说明:spring3.2 mybatis3.2 mysql5.6 相关接口: 用户接口+角色权限接口+博客接口。
主要介绍了SpringMVC @ControllerAdvice使用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
spring+mybatis+springmvc maven框架,单模块,导入就可以使用,里面有一个user的增删查改,大家拿来修改就可以使用