@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)
- 采用的restfull风格
相同点与不同点
- 二者都可用于接收前端传递过来的参数
- 一个将携带数据在参数部分,一个是在路径部分(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