问题描述:

当Java后端Api接口需要前端的Vue项目使用Post请求传递参数,并且后端没有使用@RequestBody这个注解的时候,就会出现Java后端取不到前端传递过来的参数


解决方案:

  1. 后端使用@RequestBody注解;将要取得的参数列表封装为一个实体类,使用@RequestBody注解就可以

    请求的接口

        @PostMapping("updateUser")
        public JsonResult updateUser(Integer userId,@RequestBody SysUser sysUser) {
            sysUser.setId(userId);
            return sysUserService.updateUser(sysUser);
        }
    

    部分的SysUser代码

    public class SysUser implements Serializable {
        private static final long serialVersionUID = 901945595812448349L;
        private Integer id;
    
        private String username;
    
        private String password;
        /**
         * 登录账号
         */
        private String loginName;
        /**
         * 部门id
         */
        private Integer deptId;
    }
    
  2. 让前端将参数进行序列化后再传递到后端接口,这样后端接口不修改同样可以取到参数,关键代码就下面的第6行代码

     let data1 = {
         roleName: that.addForm.roleName,
         remark: that.addForm.remark,
         menuId: that.addForm.checkedKeys
     }
     data1 = this.$qs.stringify(data1);
     addRole(data1).then((res) => {
         if (res.data.code == 0) {
         	console.log(res)
         	this.$message.success('新增角色成功!');
         	this.getRolesTableData();
         }
     })
    
Logo

前往低代码交流专区

更多推荐