[SpringMVC] 傳參

kingdelee 發表於 2019-08-09

傳參

get提交

一般使用@GetMapping
在傳參的時候,最多隻能有一個@RequestBody將引數封裝成物件
其他都必須用@RequestParam去接受基本資料型別的引數

對於時間,可以使用spring對引數攔截修改的註解對時間進行封裝為物件,否則直接用Date作為引數是錯誤的。
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime

經典示例:

@GetMapping("/selectContracts")
    public JsonResult selectContracts(@RequestBody(required = false) PageResult<Contract> pageResult,
                                      @RequestParam(required = false) String jiaFang,
                                      @RequestParam(required = false) String contractNo,
                                      @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
                                      @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {

但是如果這樣寫,在一些api工具中就無法正常除錯,因為這對於前端來說不是尋常的寫法
比如:YApi就不支援這種寫法,應該會在後續的更新中支援這個,現在時間2019-08-12

【SpringMVC】傳參

postman支援get中寫body的方法

【SpringMVC】傳參

對於沒有進行改造的SpringMVC,則仍使用噁心的基本資料型別的傳參方式。

    @GetMapping("/selectContracts")
    public JsonResult selectContracts(
                                      @RequestParam(required = false) int pageNum,
                                      @RequestParam(required = false) int pageSize,
                                      @RequestParam(required = false) String jiaFang,
                                      @RequestParam(required = false) String contractNo,
                                      @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
                                      @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
本作品採用《CC 協議》,轉載必須註明作者和本文連結