javascript - 如何使用 FormData 将 javascript 数组与 @RequestParam 绑定(bind)?

标签 javascript java ajax spring form-data

问题是将 javascript arraylist 与 RequestParam 注释绑定(bind)。 如果没有 nokDataList,我有一个这样的表单数据,效果很好。 nokInfoDatas 是一个 JavaScript 数组,在控制台中它看起来如下: enter image description here

var requestData = JSON.stringify(nokInfoDatas);
    console.log("nokInfoDatas");
    console.log(nokInfoDatas);
    console.log("requestData");
    console.log(requestData);
var fd = new FormData();
        fd.append('photo', file);
        fd.append('testId', testId);
        fd.append('nokDataList', nokInfoDatas);
var ajaxData = {
            type: "POST",
            data: fd,
            processData : false,
            contentType : false,
            url: sendUrl,
            headers: headersData,
    };

后端:

public @ResponseBody String answer(HttpServletRequest request, 
            @RequestParam(value = "photo") MultipartFile photo,
            @RequestParam(value = "testId") String testId,
        @RequestParam(value = "nokDataList") List<NokDataDTO> nokInfoDtos
            )

最佳答案

您可以尝试如下:

创建 Blob与您的 JSON 数据 (requestData) :

var requestData = JSON.stringify(nokInfoDatas);
var fd = new FormData();
fd.append('photo', file);
fd.append('testId', testId);
fd.append('nokDataList', new Blob([requestData], {
  type: "application/json"
}));

将@RequestParam更改为@RequestPart用于解析多部分 JSON。

public @ResponseBody String answer(HttpServletRequest request, 
       @RequestParam(value = "photo") MultipartFile photo,
       @RequestParam(value = "testId") String testId,
       @RequestPart(value = "nokDataList") List<NokDataDTO> nokInfoDtos
      )

关于javascript - 如何使用 FormData 将 javascript 数组与 @RequestParam 绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47901304/

相关文章:

javascript - 推特 Bootstrap : Popover and Auto Refresh

Java Swing 练习 - 无法访问变量,不知道为什么

java - 关于在表中显示字段的查询

php - JavaScript/jQuery 和 PHP Ajax 强制报错

javascript - 单击按钮时代码无法正常执行 php 文件

javascript - 禁用 displayTag 中的超链接

javascript - 尝试从两组字符之间提取数据

javascript - 需要帮助将段落标签加在一起以达到总计

Java 数组列表 java.lang.NullPointerException

javascript - Ajax - 获取单独的数据行