javascript - 将 Integer[] 列表从 ajax 发送到 Spring Controller

标签 javascript ajax spring post model-view-controller

我尝试将一些数据从前端发送到 Spring 中的 Controller 。我能够恢复除 Integer [] objectId 之外的所有数据。

这是我的ajax函数:

           var dataToSend = [{ objectIds: 111 }, { objectIds: 222 }];
           dataToSend = JSON.stringify({ 'objectIds': dataToSend });

           $.ajax({
               type:'POST',
               url:'/sendData',
               data:{'start':start, 'end':end, 'locale':locale, dataToSend},
               async:false,
               dataType: "json",
               success:function(data){}
           });

这是我的 Controller 功能:

    @PostMapping(path="/sendData")
public @ResponseBody String sendData(HttpServletResponse response, 
        @RequestParam(required=true, name="start") String start, 
        @RequestParam(required=true, name="end") String end,
        @RequestParam(required=true, name="locale") Locale locale,
        @RequestParam(required=false, name="objectIds") Integer[] objectIds) throws DocumentException, IOException {

    //some more code
}

知道为什么它不起作用吗?

最佳答案

问题出在您发送 JSON 的方式

情况 1:您的发送方式

 var dataToSend = [{ objectIds: 111 }, { objectIds: 222 }];
dataToSend = JSON.stringify({ 'objectIds': dataToSend });

var mainJSOn = {
    'start': "start",
    'end': "end",
    'locale': "locale",
    dataToSend
  }
  console.log(JSON.stringify(mainJSOn));

输出:

   {"start":"start","end":"end","locale":"locale","dataToSend":"{\"objectIds\":[{\"objectIds\":111},{\"objectIds\":222}]}"}

情况 2:您实际应该如何发送

    var dataToSend1 = [{ objectIds: 111 }, { objectIds: 222 }];
    dataToSend1 = JSON.stringify(dataToSend1 );

    var mainJSOn1 = {
        'start': "start",
        'end': "end",
        'locale': "locale",
        'objectIds': dataToSend1
      }



  console.log(JSON.stringify(mainJSOn1));

输出:

{"start":"start","end":"end","locale":"locale","objectIds":"[{\"objectIds\":111},{\"objectIds\":222}]"}

查看两种情况的输出。

像案例 2 中那样更改代码

Working Fiddle

关于javascript - 将 Integer[] 列表从 ajax 发送到 Spring Controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51736431/

相关文章:

javascript - 未捕获的 TypeError : $content. switchClass 不是函数

javascript - 安装后 'react-navigation' 开发服务器返回响应码 :500

javascript - 如何在rails应用程序中使用js.erb

HTML5 中的纯 JavaScript 链接

javascript - 如何在 HTML Canvas 中以给定 Angular 找到距离给定坐标最近的坐标

javascript - 禁用表中的按钮

javascript - 在 JavaScript 中通过 ID 引用 ASP.NET 控件?

java - JSON请求格式问题

java - Spring data jpa + 连接2个表

java - 防止 hibernate 实体更改被持久化