咕噜咕噜噜^ 2021-04-24 01:08 采纳率: 100%
浏览 359
已采纳

SpringBoot获取vue端的json不为空但 RequestBody的实体为空???

Login.vue

<template>
  <div>
    手机号:<input type="text" v-model="loginForm.userphone" placeholder="请输入手机号"/>
    <br><br>
    密码: <input type="password" v-model="loginForm.userpass" placeholder="请输入密码"/>
    <br><br>
    <button v-on:click="login">登录</button>
  </div>
</template>

<script>

export default {
  name: 'Login',
  data () {
    return {
      loginForm: {
        userphone: '',
        userpass: ''
      },
      responseResult: []
    }
  },
  methods: {
    login () {
      this.$axios
        .post('/login', {
          userphone: this.loginForm.userphone,
          userpass: this.loginForm.userpass
        })
        .then(successResponse => {
          if (successResponse.data.code === 200) {
            this.$router.replace({path: '/index'})
          }
        })
        .catch(failResponse => {
        })
    }
  }
}
</script>

RequestLoginVo.java

@Getter
@Setter
public class RequestLoginVo {
    @JsonProperty(value = "userPhone")
    private  String userPhone;
    @JsonProperty(value = "userPass")
    private String userPass;

//    private String captcha;
}

UserController.java

    @CrossOrigin
    @PostMapping(value = "api/login")
    @ResponseBody
    public Result login(@RequestBody RequestLoginVo requestLoginVo){

        System.out.println(requestLoginVo.getUserPhone());
        System.out.println(requestLoginVo.getUserPass());
        System.out.println(requestLoginVo);

        User user=userService.queryByUserPhone(requestLoginVo.getUserPhone());
        //用户不存在或密码错误
        if(user==null || !user.getUserPass().equals(Md5Utils.hash(requestLoginVo.getUserPass()))){
            if(user==null)
                System.out.println("user==null");
            if(!user.getUserPass().equals(Md5Utils.hash(requestLoginVo.getUserPass())))
                System.out.println("wrong pass");
            return new Result(400,"失败");
        }
        Map<String,Object> userMap=new HashMap<>();
        userMap.put("userId",user.getUserId());
        if(user.getUserType()== Helpless.UserTypeEnum.ORDUSER){
            userMap.put("isAdmin",true);
            return new Result(200,"成功");
//            return Result.getSuccess().setData(userMap);
        }else{
            userMap.put("isAdmin",false);
            return new Result(200,"成功");
//            return Result.getSuccess().setData(userMap);
        }
    }

把RequestLoginVo换成String类型,能输出正确的json格式,RequestLoginVo类型就为null

  • 写回答

5条回答 默认 最新

  • CSDN专家-Time 2021-04-24 07:10
    关注

    axios默认带的json格式,你回传的数据有问题。这个全是小写,

    这个驼峰命名,映射不到了。

    所以应该把前端 userphone改成 userPhone,userpass改成userPass

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?