在 Spring MVC 中,用于接收前端传递的参数的注解常用的有以下几种

目录

1、对于json请求体参数,

2、对于路径传参

3、对于query传参

4、对于form-data参数,

总结:


1、对于json请求体参数,

请求头的Content-Type应为application/json。在前端,可以使用data格式传参。在后端,可以使用**@RequestBody**注解来接收参数。

javascript 复制代码
 this.$axios({
           method: 'post',
           url: 'http://localhost:8080/api/upload/editGoods',
           data: {
              id: this.id,
              name: this.name,
              price: this.price

                }
            }).then((res) => {
                this.$message({
                    message: '修改成功',
                    type: 'success'
                })
            })
java 复制代码
   @GetMapping("/editGoods")
    public Result editGoods(@RequestBody Goods goods) {
        return uploadFileService.editGoods(goods);
    }

2、对于路径传参

(例如:test/111/2222),请求头不需要设置Content-Type。在前端,可以将参数通过URL的方式传递(例如:url=/api/upload/test2/111/2222)。在后端,可以使用**@PathVariable**注解来接收参数。

javascript 复制代码
 this.$axios({
          method: 'post',
          url: 'http://localhost:8080/api/user/deleteUser/' + userId,
        }).then((res) => {
          this.$message({
            message: res.data.message,
            type: "success",
          });
          // 刷新表格数据
          this.selectUser();
        });
      }).catch(() => {
        // 用户点击了取消按钮
        // 执行取消操作或不执行任何操作
      });
java 复制代码
    @PostMapping("/deleteUser/{userId}")
    public Result deleteUser(@PathVariable String userId) {

        return userservice.deleteUser(userId);
    }

3、对于query传参

(例如:test3?id=11111&name=222222),请求头也不需要设置Content-Type。在前端,可以将参数通过URL的方式传递(例如:url=/api/upload/test3?id=11111&name=222222)。在后端,可以使用**@RequestParam**注解来接收参数。

javascript 复制代码
this.$axios({
  method: 'post',
  url: 'http://localhost:8080/api/user/deleteUser',
  params: {
    userId: userId
  }
}).then((res) => {
  this.$message({
    message: res.data.message,
    type: "success",
  });
  // 刷新表格数据
  this.selectUser();
}).catch(() => {
  // 用户点击了取消按钮
  // 执行取消操作或不执行任何操作
});
java 复制代码
 //params传参
    @GetMapping("/editGoods");
    public String editGoods(@RequestParam String id, @RequestParam  String name) {
        System.out.println(id);
        System.out.println(name);

        return id;
    }

4、对于form-data参数,

请求头的Content-Type应为multipart/form-data。在前端,可以使用params格式传参。在后端,可以使用**@RequestParam**注解来接收参数。

javascript 复制代码
  this.$axios({
           method: 'post',
           url: 'http://localhost:8080/api/upload/editGoods',
           params: {
                 id: this.id,
                 name: this.name,

              }
            }).then((res) => {
                this.$message({
                    message: '修改成功',
                    type: 'success'
                })
            })
java 复制代码
 //params传参
    @GetMapping("/editGoods");
    public String editGoods(@RequestParam String id, @RequestParam  String name) {
        System.out.println(id);
        System.out.println(name);

        return id;
    }

query传参和form-data传参,后端接收是一样的

总结:

    • form-data参数使用multipart/form-data作为Content-Type,前端使用params格式传参,后端使用@RequestParam注解接收参数。
    • json请求体参数使用application/json作为Content-Type,前端使用data格式传参,后端使用@RequestBody注解接收参数。
    • 路径传参不需要设置Content-Type,前端将参数通过URL传递,后端使用@PathVariable注解接收参数。
    • query传参也不需要设置Content-Type,前端将参数通过URL传递,后端使用@RequestParam注解接收参数。
相关推荐
小堂子这厢有礼了15 分钟前
Chet.QuartzNet.UI v2.3.0 大更新!表格重构 + 系统配置 + 分析页全面升级!
前端·后端·ui·重构·c#·vue
程序员爱钓鱼26 分钟前
Rust 控制流 if 详解:条件判断与 if 表达式
前端·后端·rust
Listen·Rain39 分钟前
Vue3中computed详解
前端·javascript·vue.js
kyle~1 小时前
Swagger ---基于 描述文件 生成 交互式API文档 的工具
前端·后端·规格说明书·说明文档
世界哪有真情10 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端
Listen·Rain11 小时前
Vue3:setup详解
前端·javascript·vue.js
Patrick_Wilson12 小时前
修好 bug 只是开始:一次由监控需求反向重构日志结构的复盘
前端·监控·数据可视化
kyriewen12 小时前
面试官让我优化一个卡死的表格,我打开 Claude 五秒重写,他放下咖啡问我要不要来当组长
前端·javascript·面试
小粉粉hhh13 小时前
React(二)——dom、组件间通信、useEffect
前端·javascript·react.js
Csvn13 小时前
🤖 AI 生成前端代码的 5 个典型翻车现场及修复指南
前端