java - 方法形參上可以用多個(gè)@RequestBody嗎,封裝不同的對(duì)象
問(wèn)題描述
在方法的形參那可以用多個(gè)@RequestBody來(lái)把json字符串封裝成多個(gè)對(duì)象么?用一個(gè)@RequestBody.肯定可以,多個(gè)這個(gè)注解可以封裝多個(gè)不同的對(duì)象么……
問(wèn)題解答
回答1:其實(shí)請(qǐng)求參數(shù)永遠(yuǎn)都是一個(gè),因?yàn)橐粋€(gè)request中只包含一個(gè)request body. 理解了這個(gè),就會(huì)明白Spring MVC不支持多個(gè)@RequestBody。
至于要將一個(gè)request body中的content反序列化成幾個(gè)Java實(shí)例是另外一個(gè)問(wèn)題。有三個(gè)解決方向:
創(chuàng)建一個(gè)新的entity,將你的兩個(gè)entity都進(jìn)去。這是最簡(jiǎn)單的,但是不夠“優(yōu)雅”。
用Map<String, Object>接受request body,自己反序列化到各個(gè)entity中。
類似方法2,不過(guò)更為generic,實(shí)現(xiàn)自己的HandlerMethodArgumentResolver。請(qǐng)參考:https://sdqali.in/blog/2016/0...
回答2:列個(gè)業(yè)務(wù)場(chǎng)景吧
