前臺傳map引數,後臺接受
阿新 • • 發佈:2019-02-03
今天在專案上遇到了一個小小的問題,在這裡簡單記錄一下;
問題 : 在公司專案中有一個需要同時上傳多張圖片的功能, 那麼後臺介面就需要得到前臺每個圖片檔案的'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格式的引數了!!!
注 : 如有不足之處, 歡迎各位朋友評論留言!!!