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

2023-05-18,,

前言

  我相信很多程序员都会在自己的项目中使用到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);
}

    

3.@RequestParma和@PathVariable的用法和区别的相关教程结束。

《3.@RequestParma和@PathVariable的用法和区别.doc》

下载本文的Word格式文档,以方便收藏与打印。