当前位置:   article > 正文

在SpringBoot中@PathVariable与@RequestParam的区别

在SpringBoot中@PathVariable与@RequestParam的区别

@PathVariable

  1. @GetMapping("/{userId}")
  2. public R<User> getUserById(@PathVariable Long userId) {
  3. return userService.getUserById(userId);
  4. }
  1. // 根据id获取一条数据
  2. function getStudentDataByIdAndDisplayInput(id) {
  3. // 发送 AJAX 请求
  4. $.ajax({
  5. url: '/dorm/student/' + id,
  6. type: 'GET',
  7. success: function (result) {
  8. // 处理成功的响应
  9. console.log(result);
  10. // 将获取到的学生数据回显到输入框
  11. displayStudentDataInInputs(result.data);
  12. },

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

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

@RequestParam

  1. // 根据姓名分页查询用户
  2. @GetMapping("/getUsersByName")
  3. public IPage<User> getUsersByName(@RequestParam(defaultValue = "1") Long current,
  4. @RequestParam(defaultValue = "2") Long size,
  5. @RequestParam(required = false) String name) {
  6. // 构建分页对象
  7. Page<User> page = new Page<>(current, size);
  8. // 调用服务方法进行分页查询
  9. return userService.getUsersByName(page, name);
  10. }
  1. var data = {
  2. name: name,
  3. studentId: studentId,
  4. classId: classId,
  5. className: className
  6. };
  7. console.log(data)
  8. // 发送 AJAX 请求
  9. $.ajax({
  10. url: '/dorm/student/all',
  11. type: 'GET',
  12. data: data,
  13. success: function (result) {
  • 使用@RequestParam注解时,参数会从请求的查询参数中提取。在你的URL中,查询参数通常是通过 ? 后面的键值对形式出现,例如 /getUserById?userId=123.
  • 在方法的参数中使用@RequestParam注解,可以通过指定参数的名字来获取请求中的参数值。

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

@RequestBody

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

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

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号