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

相关推荐
止语Lab6 小时前
Go并发编程实战:Channel 还是 Mutex?一个场景驱动的选择框架
开发语言·后端·golang
小码哥_常6 小时前
Spring Boot一键限速:守护你的接口“高速路”
后端
阿丰资源6 小时前
基于SpringBoot的物流信息管理系统设计与实现(附资料)
java·spring boot·后端
王码码20357 小时前
Go语言的包管理:从GOPATH到Go Modules
后端·golang·go·接口
IT_陈寒10 小时前
Redis的内存溢出坑把我整懵了,分享这个血泪教训
前端·人工智能·后端
Jasper_o11 小时前
MassTransit OutBox 不发送消息问题
后端·.net
掘金码甲哥11 小时前
glm模型这么火,咱们用vllm也咧一个呗
后端
邦爷的AI架构笔记11 小时前
踩坑3天后,我把公司的AI接口全换成了多模型路由——GPT-6和Claude Opus 4.7同时上线的这周
人工智能·后端
DashVector12 小时前
AI Agent 接入 Zvec (一):MCP 篇
数据库·人工智能·后端
程序员老邢12 小时前
【技术底稿 15】SpringBoot 异步文件上传实战:多线程池隔离 + 失败重试 + 实时状态推送
java·经验分享·spring boot·后端·程序人生·spring