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

相关推荐
王中阳Go几秒前
手把手教你用 GoFrame 实现 RBAC 权限管理,从零到一搞定后台权限系统
后端
苏三说技术4 分钟前
try...catch真的影响性能吗?
后端
青梅主码11 分钟前
麦肯锡发布最新报告《职场超级代理:赋能人们释放 AI 的全部潜力》:如何用 AI 赋能员工,释放无限潜力?
后端
悟空码字20 分钟前
SpringBoot实现日志系统,Bug现形记
java·spring boot·后端
狂奔小菜鸡20 分钟前
Day24 | Java泛型通配符与边界解析
java·后端·java ee
用户685453759776921 分钟前
为什么你的Python代码那么乱?因为你不会用装饰器
后端
xjz184222 分钟前
ThreadPoolExecutor线程回收流程详解
后端
天天摸鱼的java工程师24 分钟前
🐇RabbitMQ 从入门到业务实战:一个 Java 程序员的实战手记
java·后端
Frank_zhou28 分钟前
CopyOnWriteArrayList
后端
楚兴31 分钟前
使用 Eino 和 Ollama 构建智能 Go 应用:从简单问答到复杂 Agent
人工智能·后端