0
点赞
收藏
分享

微信扫一扫

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);
}

    



举报

相关推荐

0 条评论