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

相关文章
|
3月前
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些高级用法
本文探讨了在Spring Boot项目中使用MongoDB的多种方式及其高级用法。MongoDB作为一种NoSQL数据库,在某些场景下相较于SQL数据库有着独特的优势。文中详细介绍了在Spring Boot中使用MongoDB的三种主要方式:直接使用官方SDK、使用Spring JPA以及使用MongoTemplate,并对比分析了它们之间的差异。此外,文章深入讲解了Spring Data MongoDB提供的各种注解(如@Id, @Document, @Field等)以简化操作流程,并探讨了MongoTemplate监听器的应用,如设置主键值、记录日志等。
168 2
|
3月前
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些骚操作用法
MongoDB作为一种NoSQL数据库,在不需要传统SQL数据库的表格结构的情况下,提供了灵活的数据存储方案。在Spring Boot中可以通过官方SDK、Spring JPA或MongoTemplate等方式集成MongoDB。文章重点介绍了Spring Data MongoDB提供的注解功能,例如`@Id`、`@Document`和`@Field`等,这些注解简化了Java对象到MongoDB文档的映射。此外,文中还讨论了MongoTemplate监听器的使用,包括设置主键值和日志记录等高级特性。
222 0
SpringBoot中MongoDB的那些骚操作用法
|
3月前
|
Java API
SpringBoot Scheduled 常见用法
SpringBoot Scheduled 常见用法
41 0
|
5月前
|
JSON Java 数据格式
Spring Boot 中的 @DateTimeFormat 和 @JsonFormat 的用法及作用
【6月更文挑战第11天】在开发 Spring Boot 应用时,处理日期和时间数据是一个常见的需求。Spring Boot 提供了两个注解 @DateTimeFormat 和 @JsonFormat 来帮助我们处理这些问题。
462 4
|
5月前
|
前端开发 Java 开发者
深入理解 Spring Boot 注解:核心功能与高级用法详解
深入理解 Spring Boot 注解:核心功能与高级用法详解
310 1
|
6月前
|
Java 开发者 Spring
Springboot中的@Bean用法以及常见问题
【5月更文挑战第27天】@Bean 注解是Spring框架中用于声明Spring应用上下文中的bean的一种方式。在Spring Boot中,@Bean注解通常与@Configuration注解一起使用,在配置类(Configuration class)中定义bean。
135 2
|
6月前
|
XML Java API
springboot 常用的注解标签的概念及用法RequiredArgsConstructor 、RestController、RequestMapping
【4月更文挑战第12天】在 Spring Boot 中,@RequiredArgsConstructor, @RestController, 和 @RequestMapping 是常用的注解,每个都有其特定的功能和用法,它们合起来极大地简化了 Spring 应用程序的开发过程。
217 2
|
6月前
|
安全 Java Spring
springboot @Resource、@AutoWaire的用法实战
【4月更文挑战第3天】在Spring Boot中,@Autowired和@Resource注解都用于自动注入依赖,但它们在底层工作方式和使用的场合上存在一些差异。理解这些差异有助于更有效地使用Spring框架。
198 1
|
6月前
|
存储 Java 数据库连接
springboot ConstraintValidator的概念与用法
【4月更文挑战第25天】在 Java 中,ConstraintValidator 是用于自定义注解验证的接口,属于 Bean Validation(JSR 303 和 JSR 349)标准的一部分。这个接口定义了如何实施一个特定的约束注解的验证逻辑。
212 0
|
6月前
|
前端开发 Java Maven
spring boot3参数校验基本用法
spring boot3参数校验基本用法
218 2