如何使内容类型application / x-www-form-urlencoded与@RequestBody批注一起工作?

时间:2019-04-04 01:40:30

标签: java spring spring-mvc

当内容类型为application / json时,@ RequestBody可以读取请求主体并将其反序列化为对象,但是内容类型为application / x-www-form-urlencoded,spring-mvc不能使用以下格式支持该内容类型@RequestBody注释。

在我的项目中,我遇到了这个问题,我想同时支持它们两个,但是我不想失去@RequestBody的便利性。

是否有另一种方式来支持这两种内容类型,就像@RequestBody可以将请求主体反序列化为对象一样?

@RequestMapping(value = "/test")
public String test(@RequestBody User user) {
  return user.toString();
}

1 个答案:

答案 0 :(得分:0)

  

还有另一种方式来支持这两种内容类型吗   @RequestBody可以自动反序列化请求主体为对象吗?

负面。

您可以 做的是使用FormHttpMessageConverter反序列化为MultiValueMap<String, String>。然后,您可以编写一个转换器来接受它并创建一个User对象。