天天看點

SpringMVC兩種接收GET參數的方法

接收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

繼續閱讀