[SPRING] 스프링 부트 컨트롤러에 javascript (js) 맵을 전달하는 방법은 무엇입니까?
SPRING스프링 부트 컨트롤러에 javascript (js) 맵을 전달하는 방법은 무엇입니까?
자바 스크립트 맵에서 스프링 밸트 컨트롤러로 보낼 키 값 쌍이 있습니다.
예 :--
var myMap = 새지도 (); myMap.set ( '1', 'value1'); myMap.set ( '2', 'value2');
스프링 부트 컨트롤러에서이 JavaScript (js) 맵을 얻을 수 없습니다. 내 최고의 연습하려면이 맵을 자바의 HashMap 또는 Map 얻으려고. 도움을 주시면 감사하겠습니다. :)
해결법
-
==============================
1.아래에서 시도하십시오.
아래에서 시도하십시오.
var myMap = {}; myMap["names"] = ["Alex"]; myMap["fruit"] = ["Apple"];
Ajax를 사용하도록 자바 스크립트 코드 수정하기 :
$.ajax({ type : "POST", url : "/reqURL", contentType: "application/json", data : JSON.stringify(myMap) // .....
컨트롤러 코드는 아래와 같습니다.
@RequestMapping(value = "/reqURL", method = RequestMethod.POST, consumes="application/json") @ResponseBody public List<String> reqControl(@RequestBody Map<String, List<String>> myMap) { // do something with parameters ... }
-
==============================
2.
var myMap = new Map(); myMap.set('1', 'value1'); myMap.set('2', 'value2'); myMap.set('3', 'value3'); myMap.set('4', 'value4'); //Making JS Map compatible for JSON.Stringify const out = Object.create(null) myMap.forEach((value, key) => { if (value instanceof Map) { out[key] = map_to_object(value) } else { out[key] = value } })
$.ajax({ type : "POST", url : "/yourURL", contentType: "application/json", data : JSON.stringify(myMap) //......
@RequestMapping(value = "/yourURL", method = RequestMethod.POST, consumes="application/json") @ResponseBody public List<String> reqControl(@RequestBody Map<String,<String> myMap) { // further code. }
from https://stackoverflow.com/questions/50509356/how-to-pass-a-javascript-js-map-to-spring-boot-controller by cc-by-sa and MIT license