@RequestParam和@PathVariable的区别及其应用场景

简介:

@RequestParam和@PathVariable这两者之间区别不大,主要是请求的URL不一样

用@RequestParam请求接口时,URL是:http://www.test.com/user/getUserById?userId=1

用@PathVariable请求接口时,URL是:http://www.test.com/user/getUserById/2

(1)@PathVariable示例:

@GetMapping(value="getUserById/{userId}",produces="application/json;charset=utf-8")
public Object getUserById(@PathVariable String userId) {
    
    JSONObject json  = new JSONObject();
    
    if(!StrUtil.isEmpty(userId)) {
        User user = userService.getUserById(userId);
        json.put("returnCode", "000000");
        json.put("returnMsg", "success");
        json.put("user", user);
    }else {
        json.put("returnCode", "111111");
        json.put("returnMsg", "error");
    }
    return json;

}

主要应用场景是:不少应用为了实现RestFul的风格,采用@PathVariable这种方式。

例如CSDN:

当然了,有些时候也不是为了RestFul风格而采用这种方式,有些时候觉得?userId=1&&status=1等参数传递方式不是特别好看或者是看着不爽。

(2)@RequestParam示例:

@GetMapping(value="getUserById",produces="application/json;charset=utf-8")
public Object getUserById(@RequestParam String userId) {
    
    JSONObject json  = new JSONObject();
    
    if(!StrUtil.isEmpty(userId)) {
        User user = userService.getUserById(userId);
        json.put("returnCode", "000000");
        json.put("returnMsg", "success");
        json.put("user", user);
    }else {
        json.put("returnCode", "111111");
        json.put("returnMsg", "error");
    }
    return json;

}

应用场景:这种方式应用也非常广,像CSDN或者是博客园都在用它,这里就不贴图了,经常浏览博客和新闻都能看到。

最后,你如果问我哪种方式比较好,我的回答是,根据业务场景的需求决定使用其中一种或者是结合使用。不过它们都有一个共同点,那就是都是可见。

目录
相关文章
|
26天前
|
JSON 前端开发 Java
@RequestParam这个注解的作用
@RequestParam这个注解的作用
22 0
|
XML JSON Java
权威分析@RequestParam和@RequestPart 的区别(官方文档)
一、今天写了两个文件上传的接口用到了@RequestParam和@RequestPart @RequestPart /** * 单文件上传 * @param file * @par...
9541 0
|
12天前
|
Java Spring
@RequestParams是这作用?
@RequestParams是这作用?
|
6月前
|
XML JSON 数据格式
@RequestParam @RequestBody @PathVariable 等参数绑定
@RequestParam @RequestBody @PathVariable 等参数绑定
|
4月前
|
Java API Spring
spring注解中@RequestParam和@PathVariable的区别
spring注解中@RequestParam和@PathVariable的区别
30 0
|
5月前
|
存储 XML JSON
@RequestBody、@RequestParam 、@PathVariable @RequestPart 傻傻分不清
@RequestBody、@RequestParam 、@PathVariable @RequestPart 傻傻分不清
62 0
|
5月前
|
前端开发 Java Spring
方法参数相关属性params、@PathVariable和@RequestParam用法与区别
方法参数相关属性params、@PathVariable和@RequestParam用法与区别
38 0
|
7月前
|
前端开发 Java 数据安全/隐私保护
解决通过request.getParam()方法获取到的值为null的问题~
解决通过request.getParam()方法获取到的值为null的问题~
|
11月前
|
XML SQL JSON
@PathVariable、@RequestBody、@RequestParam、@ResponseBody、@Param的详解和用法
@PathVariable、@RequestBody、@RequestParam、@ResponseBody、@Param的详解和用法
124 0
|
12月前
|
Java API Spring
@RequestParam和@PathVariable的区别
@RequestParam注解获取URL中携带的请求参数的值既URL中“?”后携带的参数,传递参数的格式是:key=value;@PathVariable注解用于获取URL中路径的参数值,参数名由RequestMapping注解请求路径时指定,常用于restful风格的api中,传递参数格式:直接在url后添加需要传递的值即可
102 0