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

相关推荐
.柒宇.几秒前
AI掘金头条项目 Docker Compose 部署完整教程(附踩坑记录)
运维·后端·python·docker·容器·fastapi
Victor3561 小时前
MongoDB(118)如何在升级过程中进行数据备份?
后端
手握风云-1 小时前
Spring AI:让大模型住进 Spring 生态(三)
java·后端·spring
Victor3561 小时前
MongoDB(117)如何从旧版本迁移到新版本?
后端
pe7er4 小时前
window管理开发环境篇 - 持续更新
前端·后端
陈随易9 小时前
有生之年系列,Nodejs进程管理pm2 v7.0发布
前端·后端·程序员
陈随易10 小时前
AI时代,你还在坚持手搓文章吗
前端·后端·程序员
大鱼七成饱11 小时前
VMware NAT模式下固定内网IP(附详细图文)
后端
IT_陈寒13 小时前
Vue的这个响应式陷阱,我debug了一整天才爬出来
前端·人工智能·后端
兔子零102414 小时前
手把手教你在 Claude Code 中接入 DeepSeek-V4
后端