SpringMVC兩種接收GET引數的方法

2021-09-20 23:54:45 字數 3066 閱讀 5382

當客戶端發起這樣的請求時,服務端如何接收其中的日期引數settledate呢:

以前我們基本上是用乙個字串來接收這個引數,然後在**中手動將其轉換為date型別。如:

1

2

3

4

5

6

7

8

9

publicvoidtest(@pathviriablelendid,@requestparamstring settledate)else

......

}

然而springmvc提供了乙個更簡便的方法: 

1

2

3

4

5

6

7

publicvoidtest(@pathviriablelendid,@requestparam(required =false)@datetimeformat(iso = datetimeformat.iso.date) date settledate)

......

}

其中的iso屬性預定義了yyyy-mm-dd、hh:mm:ss.sssz、yyyy-mm-dd't'hh:mm:ss.sssz這三種格式。如果需要別的格式,可以用其中的pattern屬性來自定義。

不過,如果要通過springmvc的註解來給日期引數設定預設值(比如設值為當前日期),需要自己進行擴充套件。

當客戶端發起這樣的請求時,服務端如何接收其中的全部引數呢:

常用的做法,是在controller的對應方法上,把所有引數一一列出來:

1

2

3

publicvoidcalcluate(@pathviriableproductid,@requestparamintcurrentphase,@requestparaminteger overduedays,@requestparamchanneltype channeltype,@requestparamfundsource fundsource,@requestparambigdecimal monthlyrepay,@requestparambigdecimal originprincipal)

或者用乙個map,來接收全部引數,然後手動將其轉化為對應的格式:

1

2

3

publicvoidcalcluate(@pathviriableproductid,@requestparam(required =false) mapparam)

其實還有第三種方式,即定義乙個資料封裝類,用這個類來接收引數:

1

2

3

publicvoidcalcluate(@pathviriableproductid, restparam param)

其中的資料封裝類如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

publicclassrestparamextendsnonidbasemodel

需要注意的是,controller的方法上,對 restparam param不要再加@requestparam註解。

spring mvc 返回json的兩種方式

1.在方法上加入 responsebody,同時方法返回值為實體物件,spring會自動將物件轉換為json格式,並返回到客戶端。如下所示 json1 responsebody public demo json1 注意 spring配置檔案要加上 同時還要引入jackson core.jar,jac...

SpringMVC解決跨域的兩種方案

跨域,即跨站http請求 cross site http request 指發起請求的資源所在域不同於請求指向資源所在域的http請求。當使用前後端分離,後端主導的開發方式進行前後端協作開發時,常常有如下情景 後端開發完畢在伺服器上進行部署並給前端api文件。前端在本地進行開發並向遠端伺服器上部署的...

SpringMVC解決跨域的兩種方案

跨域,即跨站http請求 cross site http request 指發起請求的資源所在域不同於請求指向資源所在域的http請求。當使用前後端分離,後端主導的開發方式進行前後端協作開發時,常常有如下情景 後端開發完畢在伺服器上進行部署並給前端api文件。前端在本地進行開發並向遠端伺服器上部署的...