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

 更新时间:2024年01月04日 10:39:27   作者:时间不会赖着不走  
这篇文章主要介绍了Springboot中@RequestParam和@PathVariable的用法与区别详解,RESTful API设计的最佳实践是使用路径参数来标识一个或多个特定资源,而使用查询参数来对这些资源进行排序/过滤,需要的朋友可以参考下

@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";
}

接口样式是

//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";
}

接口样式:

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

区别

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

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

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

到此这篇关于Springboot中@RequestParam和@PathVariable的用法与区别详解的文章就介绍到这了,更多相关@RequestParam和@PathVariable的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于java下载中getContentLength()一直为-1的一些思路

    基于java下载中getContentLength()一直为-1的一些思路

    下面小编就为大家带来一篇基于java下载中getContentLength()一直为-1的一些思路。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • JSON.toJSONString()空字段不忽略修改的问题

    JSON.toJSONString()空字段不忽略修改的问题

    这篇文章主要介绍了JSON.toJSONString()空字段不忽略修改的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • java实现左旋转字符串

    java实现左旋转字符串

    这篇文章主要为大家详细介绍了java实现左旋转字符串,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • java 中sleep() 和 wait() 的对比

    java 中sleep() 和 wait() 的对比

    这篇文章主要介绍了java 中sleep() 和 wait() 的对比的相关资料,需要的朋友可以参考下
    2017-04-04
  • 详解IntelliJ IDEA 2020 的Debug功能

    详解IntelliJ IDEA 2020 的Debug功能

    这篇文章主要介绍了IntelliJ IDEA 2020 的Debug功能,本文通过实例截图相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 实现quartz定时器及quartz定时器原理介绍

    实现quartz定时器及quartz定时器原理介绍

    Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便,下面我们看看如何使用它
    2013-12-12
  • MyBatis与Hibernate的比较

    MyBatis与Hibernate的比较

    Hibernate 与Mybatis都是流行的持久层开发框架,但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快,当前最高版本4.1.8。而Mybatis相对平静,工具较少,当前最高版本3.2
    2016-01-01
  • Idea如何导入一个SpringBoot项目的方法(图文教程)

    Idea如何导入一个SpringBoot项目的方法(图文教程)

    这篇文章主要介绍了Idea如何导入一个SpringBoot项目的方法(图文教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 深入理解Java中包的定义与使用

    深入理解Java中包的定义与使用

    在开发过程中,会定义很多类,为了避免相同类名称出现而发生覆盖的情况,把所有java程序保存在各自的目录里面,而该目录就是包。包的本质实际上就是一个文件夹。本文将给大家详细的介绍,对大家的学习或工作具有一定的参考借鉴价值
    2021-09-09
  • 面试初级Java开发问到Arrays

    面试初级Java开发问到Arrays

    这篇文章主要介绍了Java Arrays工具类用法,结合实例形式分析了java Arrays工具类针对数组元素修改、复制、排序等操作使用技巧与相关注意事项,需要的朋友可以参考下
    2021-07-07

最新评论