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); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!