当前位置: 首页 > 知识库问答 >
问题:

Ajax和Spring MVC无法将列表转换为Spring方法

滕成双
2023-03-14

当我试图用ajax向spring controller中的一个方法发送一个列表时,我得到了以下错误:

不支持内容类型'application/x-www-form-urlencoded'

我的AJAX代码:

$('#btn-save').click(
    ajaxSend();
);

function ajaxSend() {
    $.ajax({
        url: "/kepres2Web/mvc/spatiu/update",
        type: 'POST',
        dataType: 'json',
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(rects),
        success: function (data) {},
        error: function (data, status, er) {},
        headers: {
            'Content-type': 'application/x-www-form-urlencoded'
        }
    });
}

我的方法:

@RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json", "application/xml"}, consumes = {"application/x-www-form-urlencoded"})
public String update(@ModelAttribute("record") Spatiu spatiu,@RequestBody List<Desk> deskList) {
    System.out.println(deskList.get(0).getFill());

    dao.update(spatiu);
    //return null;
    return "redirect:view?ls&id=" + spatiu.getId();
}

我的按钮:

<button id="btn-save" type="submit" form="frmDetails" formaction="update">
    <img src="${pageContext.request.contextPath}/img/actions/save.png">
    <br>Salvare
</button>

编辑

发现Spring不能将application/x-www-form-urlencoded理解为RequestBody,所以我删除了它,并在方法上添加了@responseBody。现在它返回和空列表。

共有1个答案

韦晟睿
2023-03-14

代码中需要修复的几件事。

>

  • 您已经定义了2次标题。由标头定义的标头优先。您需要删除它才能向您的服务发送json数据。

    在@RequestMapping上,您需要定义consumes以便接受作为JSON的数据。检查默认情况下是否将json作为可接受数据,否则将使用consumes显式配置。

  •  类似资料:
    • 问题内容: 我试图将字符串列表从我的Java控制器传递到scala模板。 这是视图代码: 这是临时代码: 我遇到的错误(在Typesafe Activation Compile页面中): 类索引中的render方法不能应用于给定的类型; 必需:scala.collection.immutable.List 找到:java.util.List 原因:实际参数java.util.List无法通过方法调

    • 我的javascript代码中有一个字符串列表,我通过JQuery将其发送到基于REST的服务,如下所示: 如您所见,我将javascript数组转换为JSON数组。 现在,在服务器端,我使用Spring MVC和Jackson来接收和解析输入JSON: 但我总是得到: 我尝试从JSON对象中删除引号,还尝试使用,但没有成功。 根据OQJF建议进行更新: 我修改了我的帖子请求如下: 现在调用了我的

    • 问题内容: 我有一个函数,其输入参数可以是一个元素或元素列表。如果此参数是单个元素,则将其放在列表中,以便可以以一致的方式遍历输入。 目前我有这个: 我正在使用现有的API,因此无法更改输入参数。使用isinstance()感觉很麻烦,所以有 适当的 方法吗? 问题答案: 我喜欢Andrei Vajna的建议。请注意以下一些典型的Python类型的结果: 这具有将字符串视为不可重复的额外优势-字符

    • 问题内容: 我有一个数据框(df),看起来像: 对于整个时间序列,我尝试将今天的值除以昨天,并使用以下命令记录结果: 但是我得到以下错误: 我怎样才能解决这个问题?我试图使用以下方法将其转换为float: 但是什么也无法工作。 问题答案: 您可以改用numpy.log。Math.log需要一个数字,而不是数组。

    • 我试图通过将对象传递给“验证器”来验证库中的结果,其中验证器验证结果是否为空,并随后将传递的对象返回给调用方。例如: 调用方将调用以下内容: 我知道参数绑定发生在运行时,这就是编译器抛出这个错误的原因。我正试图避免使用显式类型创建多个方法,而宁愿捕获实现的所有类型。 在不上传或创建多个显式类型重载方法的情况下,有没有其他方法可以做到这一点?

    • 我需要使用jolt转换来完成下面的JSON转换。 需要从重新定义列的列表中创建新列,有时我们只有一个值,有时我们会得到多个值我的输入数据:- 示例 1: 示例2: 例3: 我已经写了如下的颠簸表达 使用上述 Jolt 表达式工作正常,但无法为上述 Jolt 添加列名输出如下 示例 1: 示例2: 在这里,我无法更改列的名称,因为我需要将列更改为如下所示:jolt转换后的预期输出如下所示 示例 1: