【问题标题】:How to use spring mvc to receive array as a parameter?如何使用spring mvc接收数组作为参数?
【发布时间】:2018-09-23 10:27:40
【问题描述】:

使用JSON.stringify将数组对象转换为json字符串

var array = [1, 2];
let json = JSON.stringify(array);
console.log(json);
axios.get('http://localhost/goods', json).then(function (res) {
    if (res.code == 200) {
        console.log("ok");
    }
}

Chrome浏览器控制台传输时的参数:

我的商品控制器类,例如:

@RequestMapping(value = "goods",method = RequestMethod.GET)
public String deleteByIds(@RequestBody Integer[] ids) {
    goodsService.deleteByIds(ids);
    return "ok";
}

Spring mvc 无法接收数组。或者我在编写 axios 代码时遇到问题?如何解决?

【问题讨论】:

    标签: javascript java spring spring-mvc vue.js


    【解决方案1】:

    根据您的要求,

    axios.get('http://localhost/goods', json)
    

    这是一个获取请求。所以它不会有身体。

    您可以尝试将get方法更改为发布或使用@RequestParameter而不是@RequestBody。

    【讨论】:

    • 我刚刚使用了@RequestParam,无法接收数组。因为axios发送[1, 2]的数组
    • 当axios发送get请求返回:未捕获(在promise中)错误:请求失败,状态码400
    • 请帮助更新您对问题的更改。如果你使用 RequestParameter,你可以使用简单的 url 进行测试:/test?ids[]=1&ids[]=2 或使用带有 body 的 post 方法。
    • curl -X GET --header 'Accept: application/json' 'http://localhost:9090/goods?ids=1&2' 这个没问题,你的回答很好,但是我确定axios代码有问题。
    • localhost:9090/goods?ids[]=1&ids[]=2 ,状态和结果如何?
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 2018-06-08
    • 2012-03-19
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    相关资源
    最近更新 更多