3.@RequestParma和@PathVariable的用法和区别

前言

  我相信很多程序员都会在自己的项目中使用到Restful风格来安全便捷地进行接口的编写,因此本文这篇博客来简要介绍一下controller方法中的两个注解:@RequestParma和@PathVariable的使用和不同点

1.两个注解的用法

  1.1 注解的位置

    两个注解都是作为形参的别名注解在方法括号中形参的前面

@RequestMapping("/user/{uerId}}")
public JsonResuilt<Void> getUserByUid(@PathVariable("userId") Integer uid)
@RequestMapping("/user/{uerId}}")
public JsonResuilt<Void> getUserByUid(@RequestParam("userId") Integer uid)

  1.2 注解的使用

  • 给方法中的形参取别名,例如userId就是形参uid的别名
  • @PathVariable("userId") Integer uid
  • 安全地传值,将uid的值在URL中使用别名userId传递
  • @RequestMapping("/user/{uerId}}")
    public JsonResuilt<Void> getUserByUid(@RequestParam("userId") Integer uid)

2.两个注解的相同点和区别

  2.1 相同点

  • 两者都是Restful风格的注解,都可以在URL上面动态地传值
  • 两者都可以为方法中的形参取别名,安全地传递参数

  2.2 不同点

  • @RequestParam 更适用于增删改等方法的形参传值,显示优雅
  • http://localhost:8080/user/login?name=小文&pwd=123456
  • @PostMapping("/change_password")
        public JsonResult<String> changePassword(@RequestParam(value = "oPwd", required = false) String oldPassword,
                                                @RequestParam(value = "nPwd", required = false) String newPassword,
                                                HttpSession session)
  • @PathVariable 常用与查询方法的形参传值:
    http://localhost:8080/wo/get_by_uid/1
  • @GetMapping("/get_by_uid/{userId}") 
    public JsonResult<SysUser> getByUid(@Pathvariable("userId") Integer uid, String username
    ){ Integer uid
    = getUidFromSession(session); SysUser data = userDetailsService.getByUid(uid); return new JsonResult<SysUser>(OK, data); }

     

    

posted @   求知律己  阅读(401)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示