前端传入参数问题

前端传入参数问题

​自己写了下,用@RequestParam,前端如果传入的是json格式的数据,后端怎么解析呢?我自己测试的结果

http://img1.sycdn.imooc.com//climg/6087c7aa093b303a08920426.jpg

http://img1.sycdn.imooc.com//climg/6087c7c209fb856714690131.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,如果实体类名称是User,则方法应该写为:

​public ApiRestResponse login( @RequestBody User  user) {}

在方法中可以通过属性的get方法获取具体的属性值。例如user.getUserName();

同学可以在方法中使用System.out.println()输出一下,查看是否有将前端的数据传入方法中。

祝学习愉快~

  • @PostMapping("/login")
    @ResponseBody
    public ApiRestResponse login(@RequestBody User user, HttpSession session) throws TransferException {
    if (StringUtils.isEmpty(user.getUsername())) {
    return ApiRestResponse.error(TransferExceptionEnum.NEED_USER_NAME);
       }
    if (StringUtils.isEmpty(user.getPassword())) {
    return ApiRestResponse.error(TransferExceptionEnum.NEED_PASSWORD);
       }
    User user1 = userService.login(user.getUsername(),user.getPassword());
       System.out.println("测试语句");
       session.setAttribute(Constant.TRANSFER_USER, user1);
       user1.setPassword(null);
       return ApiRestResponse.success(user1);
    }

    改成这样以后http://img1.sycdn.imooc.com//climg/6087f22c0913e37604680083.jpg

    提示user的username为空

    2021-04-27 19:15:12
  • 但是传入了参数http://img1.sycdn.imooc.com//climg/6087f25b09d8ce5807320328.jpg

    2021-04-27 19:15:51
  • 同学你好,使用@RequestBody需要保证前台传入的字段和实体类属性名称相同,问一下同学实体类User中的属性名是username还是userName。这里需要保持名称一致才能正确的传入数据。

    祝学习愉快~

    2021-04-28 09:39:53
好帮手慕阿满 2021-04-27 18:23:56

同学你好,如果同学前端使用post请求发送数据,并且字段和实体类的属性相同,可以在方法中,使用@RequestBody接收前端传入的json数据。

祝学习愉快~


  • 那我接口函数这里参数应该怎么改?http://img1.sycdn.imooc.com//climg/6087e84e095b8db912050381.jpg

    @PostMapping("/login")
    @ResponseBody
    public ApiRestResponse login(@RequestParam("userName") String userName, @RequestParam("password") String password, HttpSession session) throws TransferException {
    if (StringUtils.isEmpty(userName)) {
    return ApiRestResponse.error(TransferExceptionEnum.NEED_USER_NAME);
       }
    if (StringUtils.isEmpty(password)) {
    return ApiRestResponse.error(TransferExceptionEnum.NEED_PASSWORD);
       }
    User user = userService.login(userName, password);
       System.out.println("测试语句");
       session.setAttribute(Constant.TRANSFER_USER, user);
       user.setPassword(null);
       return ApiRestResponse.success(user);
    }

    如何RequestBody

    2021-04-27 18:33:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师