【发布时间】:2020-08-09 16:48:00
【问题描述】:
class A {
@NotNull
@NotEmpty
String name;
B b;
//setters and getters
}
class B {
MultiValueMap<String, String> keyMultiValues;
//setters and getters
}
@RestController
class MyController {
@PostMapping(value="/test", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public String doSomething(@RequestBody @Valid A a){
//some business logic
}
}
由于在 B 类 中使用 MultiValueMap,我遇到了以下错误 [org.springframework.web.HttpMediaTypeNotSupportedException:不支持内容类型'application/json;charset=UTF-8']
任何想法,如何解决上述问题?
【问题讨论】:
-
您是否尝试过 B 类中的一些特定实现,例如 LinkedMultiValueMap ?
-
@MarcinErbel 嘿,非常感谢,用 LinkedMultiValueMap 替换 MultiValueMap 后效果很好,但我不明白,为什么 MultiValueMap 没有工作以及如何使用 LinkedMultiValueMap ......有什么想法吗?
-
所以我发布了一个答案。您可以将其标记为正确 :) 关于不同之处在于您需要指定实现,因为您的反序列化器需要准确地知道它。
标签: spring spring-boot spring-mvc spring-restcontroller spring-rest