在SpringBoot中@PathVariable与@RequestParam的区别

本文详细介绍了如何在SpringMVC中使用@PathVariable从路径中提取参数,@RequestParam从查询参数获取数据,以及@RequestBody处理HTTP请求体,通过实例展示了如何进行用户数据的CRUD操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@PathVariable

    @GetMapping("/{userId}")
    public R<User> getUserById(@PathVariable Long userId) {
        return userService.getUserById(userId);
    }
// 根据id获取一条数据
function getStudentDataByIdAndDisplayInput(id) {
    // 发送 AJAX 请求
    $.ajax({
        url: '/dorm/student/' + id,
        type: 'GET',
        success: function (result) {
            // 处理成功的响应
            console.log(result);

            // 将获取到的学生数据回显到输入框
            displayStudentDataInInputs(result.data);
        },

使用@PathVariable注解时,参数会从请求的路径中提取。在你的URL中,路径参数通常是通过 {} 包裹的形式出现,例如 /{getUserById}/123.

postman测试:http://localhost:8080/test/user/1

@RequestParam

    // 根据姓名分页查询用户
    @GetMapping("/getUsersByName")
    public IPage<User> getUsersByName(@RequestParam(defaultValue = "1") Long current,
                                      @RequestParam(defaultValue = "2") Long size,
                                      @RequestParam(required = false) String name) {
        // 构建分页对象
        Page<User> page = new Page<>(current, size);

        // 调用服务方法进行分页查询
        return userService.getUsersByName(page, name);
    }
    var data = {
        name: name,
        studentId: studentId,
        classId: classId,
        className: className
    };

    console.log(data)

    // 发送 AJAX 请求
    $.ajax({
        url: '/dorm/student/all',
        type: 'GET',
        data: data,
        success: function (result) {
  • 使用@RequestParam注解时,参数会从请求的查询参数中提取。在你的URL中,查询参数通常是通过 ? 后面的键值对形式出现,例如 /getUserById?userId=123.
  • 在方法的参数中使用@RequestParam注解,可以通过指定参数的名字来获取请求中的参数值。

postman测试:http://localhost:8080/test/user/getUsersByName2?current=1&size=3&name=z

@RequestBody

    // 更新用户信息
    @PutMapping("/updateUser")
    public R<String> updateUser(@RequestBody User user) {
        return userService.updateUser(user);
    }

@RequestBody 是 Spring 框架中用于处理 HTTP 请求体的注解。当使用该注解时,Spring 将尝试将请求体的内容转化为指定的 Java 类型,以便在方法参数中使用。

如果是RequestBody注解接收,来这填写数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值