Java @PathVariable和@RequestParam区别

问题背景

今天练习菜品管理系列功能,需求是点击"停售"后会发出请求http://localhost:8080/dish/status/0?ids=1663210068914552833 ,其中请求路径的0代表停售,1代表在售状态,ids为需要修改的菜品id

对应的controller代码为:

less 复制代码
@PostMapping("/status/{status}")
public Result updateStatus0(@PathVariable("status")int status ,@RequestParam("ids") Long[] ids){
    log.info("需要修改为的status为:"+status);
    log.info("需要修改为的ids为:"+ Arrays.toString(ids));

    for (int i=0;i<ids.length;i++){
        Dish dish = new Dish();
        dish.setStatus(status);
        dish.setId(ids[i]);
        dishService.updateById(dish);
    }
    return Result.success("更新成功");
}

区别

若为路径请求(/dish/status/0),则使用@PathVariable;若传递参数(即键值对形式,ids=1663210068914552833),则使用@RequestParam

相关推荐
VX:Fegn089525 分钟前
计算机毕业设计|基于springboot + vue智慧医药系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
半桶水专家7 小时前
go语言中的结构体嵌入详解
开发语言·后端·golang
佳佳_8 小时前
关于在 Fabric.js 中注册字体覆盖的问题
后端·node.js
GoGeekBaird9 小时前
通过ChatGPT+Nano Banana定制一个 PPT 生成的工作流
后端
用户21411832636029 小时前
手把手教你部署AI视频复刻神器!一键生成Sora2级别视频
后端
计算机学姐9 小时前
基于SpringBoot的高校论坛系统【2026最新】
java·vue.js·spring boot·后端·spring·java-ee·tomcat
Victor35610 小时前
Hibernate(13) Hibernate的一级缓存是什么?
后端
毕设源码-赖学姐10 小时前
【开题答辩全过程】以 基于SpringBoot的健身房管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Victor35610 小时前
Hibernate(14)什么是Hibernate的二级缓存?
后端
czlczl2002092510 小时前
SpringBoot自动配置AutoConfiguration原理与实践
开发语言·spring boot·后端