복붙노트

[SPRING] 스프링 부트 컨트롤러에 javascript (js) 맵을 전달하는 방법은 무엇입니까?

SPRING

스프링 부트 컨트롤러에 javascript (js) 맵을 전달하는 방법은 무엇입니까?

자바 스크립트 맵에서 스프링 밸트 컨트롤러로 보낼 키 값 쌍이 있습니다.

예 :--

var myMap = 새지도 ();      myMap.set ( '1', 'value1');      myMap.set ( '2', 'value2');

스프링 부트 컨트롤러에서이 JavaScript (js) 맵을 얻을 수 없습니다. 내 최고의 연습하려면이 맵을 자바의 HashMap 또는 Map 얻으려고. 도움을 주시면 감사하겠습니다. :)

해결법

  1. ==============================

    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. ==============================

    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.   
        }
    
  3. from https://stackoverflow.com/questions/50509356/how-to-pass-a-javascript-js-map-to-spring-boot-controller by cc-by-sa and MIT license