controller层加上@RequestBody注解,就接收不到前端发送过来的请求了

前端关键代码如下:

需要传到后台的对象
 user:{
                        roomId:'',
                        peopleIdentity:'',
                        name:'',
                        pushMoney:0.0
                    }
ajax请求
 KF2(){
                    let _this=this;
                    alert(this.user.peopleIdentity)
                      axios({
                          url:"/addKF",
                          methods:"post",
                          params: {
                              user:_this.user
                          }
                      }).then(resp=>{
                         var i= resp.data.addKF;
                         alert(i);
                         if (i>0){
                            alert("开房成功");
                        }
                      })
                }

controller层数据如下:

    @PostMapping("/addKF")
    public String addKF(@RequestBody User user, HttpServletResponse response)throws Exception{
        System.out.println("我进来开房的controller");
        System.out.println(user);
        int i = hotelService.addKF(user);
        System.out.println("添加的状态为:"+i);
        JSONObject jsonObject=new JSONObject();
        jsonObject.put("addKF",i);
        PrintWriter writer = response.getWriter();
        writer.print(jsonObject);
        return null;
    }

这个注解加上后,前端参数得放到body里面,不能拼接在链接后面了。用data

@RequestBody 表示接收的请求内容类型不能是表单类型,

                          params: {

                              user:_this.user

                          }

修改为

data:_this.user

data

img

img


改成这样好像没什么用

本来想的是把 (user:{
roomId:'',
peopleIdentity:'',
name:'',
pushMoney:0.0
})这段代码的数据发送到controller,结果controller那边接收不到,然后去网上,网上说要使用@RequestBody这个注解,加上这个注解之后,controller就接收不到请求了

你controller上的注解是哪个注解?