1. 程式人生 > >前臺傳map引數,後臺接受

前臺傳map引數,後臺接受

今天在專案上遇到了一個小小的問題,在這裡簡單記錄一下;

問題 : 在公司專案中有一個需要同時上傳多張圖片的功能, 那麼後臺介面就需要得到前臺每個圖片檔案的'name'和'value'值;


解決 : 剛開始我想到使用的是list, 發現這樣不能區分各個圖片檔案的'name', 然後想到使用map來接受引數, 讓'name'值存到map的key中, 'value'值也就是圖片物件,存到map集合的value中;

問題解決;

下面一起來分析一下使用map接受引數的方式:

首先Spring MVC和Spring Boot中的Controller方法都不能封裝List或者Map型別的引數,所以要單獨設定一個封裝請求引數的類(MapRequestVO,類名隨便起), 該類中只需要有一個Map型別的屬性即可;

MapRequestVO內容:

import java.util.Map;

/**
 * @author luan
 * @create 2018-06-13 10:30
 * @desc 內容...
 **/
public class MapRequestVO {

    private Map<String,String> map;

    public Map<String, String> getMap() {
        return map;
    }

    public void setMap(Map<String, String> map) {
        this.map = map;
    }
}

Controller介面:

@RestController
public class MerchantIntoController {
    @PostMapping("/mapTest")
    public void mapTest(MapRequestVO map) {
        System.out.println(JSON.toJSONString(map));
    }
}

使用postman訪問該路徑,並且傳遞map[key1] = value1 ... 格式的引數,檢視控制檯列印結果:

引數 :

控制檯列印 :


這樣就可以接受前臺傳遞Map格式的引數了!!!

注 : 如有不足之處, 歡迎各位朋友評論留言!!!