當客戶端發起這樣的請求時,服務端如何接收其中的日期引數settledate呢:
以前我們基本上是用乙個字串來接收這個引數,然後在**中手動將其轉換為date型別。如:
1
2
3
4
5
6
7
8
9
public
void
test(
@pathviriable
lendid,
@requestparam
string settledate)
else
......
}
然而springmvc提供了乙個更簡便的方法:
1
2
3
4
5
6
7
public
void
test(
@pathviriable
lendid,
@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
public
void
calcluate(
@pathviriable
productid,
@requestparam
int
currentphase,
@requestparam
integer overduedays,
@requestparam
channeltype channeltype,
@requestparam
fundsource fundsource,
@requestparam
bigdecimal monthlyrepay,
@requestparam
bigdecimal originprincipal)
或者用乙個map,來接收全部引數,然後手動將其轉化為對應的格式:
1
2
3
public
void
calcluate(
@pathviriable
productid,
@requestparam
(required =
false
) mapparam)
其實還有第三種方式,即定義乙個資料封裝類,用這個類來接收引數:
1
2
3
public
void
calcluate(
@pathviriable
productid, restparam param)
其中的資料封裝類如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public
class
restparam
extends
nonidbasemodel
需要注意的是,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文件。前端在本地進行開發並向遠端伺服器上部署的...