1. 程式人生 > >前臺傳遞POST與GET請求時,後臺接收資料

前臺傳遞POST與GET請求時,後臺接收資料

今天9月30號,距離放假還有一天,划水過程中記錄一下曾經遇到的問題。

get請求:在常規理解上來,是跟在位址列後方的眾多變數,在後臺接收的時候,我們可以定義一個包裝物件,或者是直接用引數來接收,或者用Map來接收都可以,其中我們可能會用到@RequestParam註解來對接收到的資料進行預設賦值,是否是必須欄位等實現功能。

post請求:post請求是接收一個表單內部的資料,我們平時採用的方式也是定義包裝類物件來接收。當然,在前後端分離的情況下(前臺向後臺傳遞一個JSON字串時),我們要採用@RequestBody來將其轉化為我們所要的包裝類物件。那麼重頭戲來了,設計個場景:

前臺向後臺傳遞JSON字串資料時,一個包裝類無法存放方法體中的資料(即有部分屬性不在你定義的包裝類中時),那麼當接收資料的時候,可以用兩個物件(都採用@RequestBody)來接收嗎?答案是不可以,因為一個post請求也只傳遞一個整體表單資料,同樣@RequestBody在入參中只能定義一次,將表單資料封裝成一個物件接收。針對這種情況,解決辦法 ,可以重新定義一個接收引數的包裝類,當然這樣有點費事。我個人習慣的兩種用法,在入參處定義一個Map,然後針對性的從Map當中取資料,或者在引數中將所有屬性都一一定義成區域性變數,採用@RequestParam註解從前臺也可以獲取到值,代入其中去運算。

公司目前在用微服務,簡單的理解,就是把我們平時所用的Service層給註冊成一個服務,Controller層對其進行遠端呼叫。那麼在傳遞POST請求與GET請求時,Service的服務請求型別和Controller接收到的請求型別並無關聯,可以隨意使用。

隨手記錄一下。