在controller 中 @RequestBody 传进来的参数如果在 bean中没有,那么会返回400错误
思考一:我第一个想的是不是所有的项目都这样
毫不犹豫创建了一个spring boot项目写了个controller,使用postman测试,并没有这个问题
那就是这个项目的配置问题
思考二:@RequestBody 传入的json反序列化成bean,干这个事情的就是MappingJackson2HttpMessageConverter,找找这个配置
果然找到自定义配置了MappingJackson2HttpMessageConverter
解决方法1(推荐):
添加配置,属性未知的情况不报错
//解决前端传入json属性在bean中不存在导致 调用controller 400错误 20211119 houyong
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter(objectMapper);
测试了一下果然可以
网上方法二:
在bean上添加@JsonIgnoreProperties(ignoreUnknown = true)
也可以但是要每个bean都添加