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

相关推荐
Kiri霧3 小时前
Rust开发环境搭建
开发语言·后端·rust
间彧4 小时前
Spring事件监听与消息队列(如Kafka)在实现解耦上有何异同?
后端
间彧4 小时前
Java如何自定义事件监听器,有什么应用场景
后端
叶梅树4 小时前
从零构建A股量化交易工具:基于Qlib的全栈系统指南
前端·后端·算法
间彧5 小时前
CopyOnWriteArrayList详解与SpringBoot项目实战
后端
间彧5 小时前
SpringBoot @FunctionalInterface注解与项目实战
后端
程序员小凯5 小时前
Spring Boot性能优化详解
spring boot·后端·性能优化
Asthenia04125 小时前
问题复盘:飞书OAuth登录跨域Cookie方案探索与实践
后端
tuine5 小时前
SpringBoot使用LocalDate接收参数解析问题
java·spring boot·后端
W.Buffer5 小时前
Nacos配置中心:SpringCloud集成实践与源码深度解析
后端·spring·spring cloud