zoukankan      html  css  js  c++  java
  • vue项目post、put、delete、get向java后端传数组

    通常我们向后端发送数据有两种方式 get、post,后又restful风格出现,又有put、delete等传参方式。但是对于我们来说他们的传参本质还是只有get和post的两种,即 get、delete是一样的方式、post、put是一样的。

    在vue项目中,通常使用axios发送ajax请求于是就有下面两种情况传数组

    一、get、delete传数组

    我们这里需要一个json插件qs

     params:{
              ids: [1,2,3,4],
     },
     paramsSerializer:function (params) {
               return qs.stringify(params, {indices: false })
    }

    java后端直接用数组接收即可   例如:

     @DeleteMapping("delAny") | @GetMapping("delAny")
      public int delOneById(Long[] ids) {
            return service.delByIds(Arrays.asList(ids));
      }

    二、post、put等传数组

     this.axios.post('/sysUser/addOne', {
             username: this.addUser.username,
             realName: this.addUser.realName,
             phone: this.addUser.phone,
             roles: JSON.stringify(this.addUser.selectRoles)
    })

    上诉代码中的参数 roles是数组,这里我并还有直接将数组传参到后端,而是将其JSON化,转换成为JSON字符串,于是后端接收的也是一个字符串

    @PostMapping("addOne")
    public int addOne(String username, String realName, String phone, String roles) {
         //转换字符串为json数组 JSONArray json
    = JSONObject.parseArray(roles);
         //创建一个数组对象 长度和json数组一样 即json.size() Integer[] a
    = new Integer[json.size()];
         //然后将之转换成我们需要的数组就好了 json.stream().forEach(System.out::println); Integer[] array
    = json.toArray(a); return service.addOne(username, realName, phone, array); }

    这里我使用到了阿里的fastjson作为操作json的工具。

  • 相关阅读:
    Eclipse报错:An internal error has occurred. Widget is disposed
    服务器端解决跨域问题的三种方法
    为什么要使用NoSQL
    Mybatis 中$与#的区别
    maven 打包命令,跳过测试
    maven打包跳过测试命令
    Vue 扩展插件
    node 文件打开状态
    node buffer缓冲区
    npm 命令
  • 原文地址:https://www.cnblogs.com/Tiandaochouqin1/p/12014762.html
Copyright © 2011-2022 走看看