Как передать javascript (js) Map в весенний загрузочный контроллер? - PullRequest
0 голосов
/ 24 мая 2018

У меня есть карта Java Script с парами ключ-значение, которые мне нужно отправить в весенний загрузочный контроллер: -

Пример: -

 var myMap = new Map();
     myMap.set('1', 'value1');
     myMap.set('2', 'value2');
    

Мне не удалось получить эту карту JavaScript (js) в моем контроллере весенней загрузки.Насколько я могу судить, я пытаюсь получить эту карту в HashMap или Map Java.Помощь высоко ценится.:)

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Я нашел решение: -

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.   
    }
0 голосов
/ 24 мая 2018

Попробуйте ниже:

var myMap = {};
myMap["names"] = ["Alex"];
myMap["fruit"]  = ["Apple"];

Измените код JavaScript для использования 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 ...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...