[英]Spring Bind @RequestBody to other data types
看到一个JSON RequestBody绑定到POJO是很常见的,如下所示:
@RequestMapping(value="/users", headers="Accept=application/json",method=RequestMethod.POST)
public void create(@RequestBody CustomerInfo customerInfo){
...
}
是否可以将@RequestBody绑定到非POJO,但绑定到其他数据类型,例如原始和非原始数据类型?
例如:
@RequestMapping(value="/users", headers="Accept=application/json",method=RequestMethod.POST)
public void create(@RequestBody Set<Integer> ids){
...
}
对的,这是可能的。
根据您的示例,
public void create(@RequestBody Set<Integer> ids){
...
}
它会收到像[1,2,3]
类的东西,因为请求体非常好。
再举一个原始的例子
public void create(@RequestBody int id) {
...
}
作为请求主体,它将收到类似1
的信息。
但是,对于后一个示例,我不会说它是application/json
。
每个文档:
您可以使用Java对象尝试作为@RequestBody
的类型参数。 话虽如此,我认为没有对原语的支持。
根据文档,您可以选择以下选项:
RequestMappingHandlerAdapter通过以下默认HttpMessageConverters支持@RequestBody批注:
- ByteArrayHttpMessageConverter转换字节数组。
- StringHttpMessageConverter转换字符串。
- FormHttpMessageConverter将表单数据与MultiValueMap之间进行转换。
- SourceHttpMessageConverter可与javax.xml.transform.Source之间进行转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.