Springboot中@RequestParam和@PathVariable的用法与区别

简介: Springboot中@RequestParam和@PathVariable的用法与区别

今天编写代码时发现路径参数和查询参数的问题 ,不知道用哪个,写篇文章记录一下

RESTful API设计的最佳实践是使用路径参数来标识一个或多个特定资源,而使用查询参数来对这些资源进行排序/过滤


@PathVariable


会用在单个对象的查询上,比如要根据ID值查询学生信息,就会在Postman发送GET请求,后台使用@PathVariable接收

后端是


@RequestMapping(value="/page/{name}/{age}",method=RequestMethod.GET)
public String getName(ModelMap map,@PathVariable("name") String name,@PathVariable("age") int age)
{
    map.addAttribute("name",name);
    map.addAttribute("age",age);
    return "name";
}

接口样式是


http://localhost:8080/page/xiaoming/18

@RequestParam


会用在组合查询多个对象,比如跟据姓名模糊查询和性别组合查询筛选学生,就会发送POST请求,后台使用RequestParam接收

后端:


@RequestMapping(value="/result",method=RequestMethod.GET)
public String resultParam(ModelMap map,@RequestParam String name,@RequestParam int age)
{
    map.addAttribute("name",name);
    map.addAttribute("age",age);
    return "result";
}


接口样式:


http://localhost:8080/result?name=xiaoming&age=20

区别:


1、当URL指向的是某一具体业务资源(或资源列表),例如博客,用户时,使用@PathVariable

这个是举例是为了获取具体某一个缺陷或者用户的时候用

2、当URL需要对资源或者资源列表进行过滤,筛选时,用@RequestParam

相关文章
|
5天前
|
存储 Java 数据库连接
springboot ConstraintValidator的概念与用法
【4月更文挑战第25天】在 Java 中,ConstraintValidator 是用于自定义注解验证的接口,属于 Bean Validation(JSR 303 和 JSR 349)标准的一部分。这个接口定义了如何实施一个特定的约束注解的验证逻辑。
11 0
|
19天前
|
XML Java API
springboot 常用的注解标签的概念及用法RequiredArgsConstructor 、RestController、RequestMapping
【4月更文挑战第12天】在 Spring Boot 中,@RequiredArgsConstructor, @RestController, 和 @RequestMapping 是常用的注解,每个都有其特定的功能和用法,它们合起来极大地简化了 Spring 应用程序的开发过程。
22 2
|
28天前
|
安全 Java Spring
springboot @Resource、@AutoWaire的用法实战
【4月更文挑战第3天】在Spring Boot中,@Autowired和@Resource注解都用于自动注入依赖,但它们在底层工作方式和使用的场合上存在一些差异。理解这些差异有助于更有效地使用Spring框架。
29 1
|
2月前
|
前端开发 Java Maven
spring boot3参数校验基本用法
spring boot3参数校验基本用法
44 2
|
9月前
|
XML Java 数据格式
SpringBoot入门(五) 之 @ConfigurationProperties和@Value的区分与用法
SpringBoot入门(五) 之 @ConfigurationProperties和@Value的区分与用法
|
8月前
|
前端开发 Java Spring
Spring Boot 中的 @Controller 注解:原理、用法与示例
Spring Boot 中的 @Controller 注解:原理、用法与示例
|
8月前
|
Java
SpringBoot高级用法
SpringBoot高级用法
100 0
|
9月前
|
JSON 前端开发 Java
SpringBoot@RequestParam和@PathVariable的作用--【JSB系列之006外篇】
SpringBoot@RequestParam和@PathVariable的作用--【JSB系列之006外篇】
|
Java Spring
SpringBoot从0到实战9:学习@RequestParam和@PathVariable
正确理解“访问请求”、“URI”、“URL”、“请求参数”的概念
|
Java 数据库连接 Spring
SpringBoot启动类的扫描注解的用法及冲突原则
SpringBoot启动类的扫描注解的用法及冲突原则
414 0
SpringBoot启动类的扫描注解的用法及冲突原则