接收Date類型資料
當用戶端發起這樣的請求時,服務端如何接收其中的日期參數settleDate呢:
http://localhost:8080/calculate/1?settleDate=2016-10-30
以前我們基本上是用一個字元串來接收這個參數,然後在代碼中手動将其轉換為Date類型。如:
然而SpringMVC提供了一個更簡便的方法:
其中的iso屬性預定義了yyyy-MM-dd、HH:mm:ss.SSSZ、yyyy-MM-dd'T'HH:mm:ss.SSSZ這三種格式。如果需要别的格式,可以用其中的pattern屬性來自定義。
不過,如果要通過SpringMVC的注解來給日期參數設定預設值(比如設值為目前日期),需要自己進行擴充。
用一個複雜對象接收多個參數
當用戶端發起這樣的請求時,服務端如何接收其中的全部參數呢:
http://localhost:8080/calculate/product/97?currentPhase=1&overdueDays=1,16&channelType=UCREDIT&fundSource=RENRENDAI&monthlyRepay=1000&originPrincipal=900000
常用的做法,是在Controller的對應方法上,把所有參數一一列出來:
或者用一個Map<String, String>,來接收全部參數,然後手動将其轉化為對應的格式:
其實還有第三種方式,即定義一個資料封裝類,用這個類來接收參數:
其中的資料封裝類如下:
需要注意的是,controller的方法上,對 RestParam param不要再加@RequestParam注解。
參考
http://www.cnblogs.com/fangjian0423/p/springMVC-request-param-analysis.html