[英]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.