@PathVariable及其@RequestParam区别

  • RequestParam

    • 用于获取参数 ,如/user?userId="123456"&userName="Tom"

    • 获取方式:

      //URL: /user?userId="1"
      public void selectUser(@RequestParam String userId){}
      
    • 若URL中参数名与方法中参数不一致,可以指定参数名称

      //URL: /user?userId="1"
      public void selectUser(@RequestParam(value="id") String id){}
      
    • 参数类型尽量用包装类型,因为若用基本数据类型的话,前端若传递的参数为空,在参数类型转换上就会出现问题。 若一定要用基本数据类型的话,需要指定默认值如下。

      //URL: /user?userId="1"
      public void selectUser(@RequestParam(value = "id", required = false, defaultValue = "0") int id)) String id){}
      
    • 若URL需要传递同名参数的话,方法接收参数数可用数据,或者list接收

      //URL: /user?userId="1"&userId="2"
      public void selectUser(@RequestParam String[] userId){}
      
      //URL: /user?userId="1"&userId="2"
      public void selectUser(@RequestParam List<String> list){}
      
  • PathVariable

    • 采用的restfull风格
      @RequestMapping("/edit/{id}/{name}")
      public String edit(Model model, @PathVariable long id,@PathVariable String name) 
      

相同点与不同点

  • 二者都可用于接收前端传递过来的参数
  • 一个将携带数据在参数部分,一个是在路径部分(welife/user/1 , welife/user?userId="1")
  • 对于不同业务,使用方法也不同,如用于显示不同用户界面时适合
    /jd/user1
    /jd/user2
    /jd/user3
    对于使用不同

标题:PathVariable及其RequestParam区别
作者:JonLv
地址:http://39.108.183.139:8080/articles/2023/03/11/1678547650290.html