IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> @PathVariable和@RequestParam测试 -> 正文阅读

[开发测试]@PathVariable和@RequestParam测试

对于mvc中的get请求注解之前自己一直迷迷糊糊的,不知道有那些注解,也不太清楚它们该在何时使用,通过简单的小测试让自己理解了其功能和使用。在此做个记录。
@PathVariable和@RequestParam见名知意 路径变量和请求参数,它们通常是在使用get请求的时候进行定义使用的。
@PathVariable:路径变量
@RequestParam:请求参数

最近在写代码的时候,一个 xxx/{id}的请求方式,自己忘了加@PathVariable导致报错,因此测试一下不同的场景和作用。
首先定义一些简单的方法,这里都加上了@ResponseBody 统一返回string。
这里针对路径变量和请求参数分别进行了不同情况的测试,@PathVariable加注解和不加注解以及@RequestParam加注解和不加注解 。

测试

	@ResponseBody
    @GetMapping("/test1/{id}")
    public String test1(String id){
        return "路径变量不加注解能否获取" + id;
    }
    @ResponseBody
    @GetMapping("/test11/{id}")
    public String test11(@PathVariable("id") String id){
        return "路径变量加注解能否获取" + id;
    }

    @ResponseBody
    @GetMapping("/test2")
    public String test2(String id){
        return "requestParam-不加注解" + id;
    }
    @ResponseBody
    @GetMapping("/test21")
    public String test21(String id,String name){
        return "requestParam 不加注解 - 两个参数" + id + name;
    }
    
    @ResponseBody
    @GetMapping("/test22")
    public String test22(@RequestParam("id") String id,@RequestParam("name") String name){
        return "requestParam加注解 - 两个参数" + id + name;
    }

结论

	@ResponseBody
    @GetMapping("/test1/{id}")
    public String test1(String id){
        return "路径变量不加注解能否获取" + id;
        /*
        对于路径变量,如果没有加注解 那么获取不到值,哪怕只有一个参数
        (请求路径  显示结果)
        http://localhost:30000/test1/1   路径变量不加注解能否获取 null

        http://localhost:30000/test11/1  路径变量加注解能否获取 1
         */
    }
    @ResponseBody
    @GetMapping("/test11/{id}")
    public String test11(@PathVariable("id") String id){
        return "路径变量加注解能否获取" + id;
    }

    @ResponseBody
    @GetMapping("/test2")
    public String test2(String id){
        return "requestParam-不加注解" + id;
    }
    @ResponseBody
    @GetMapping("/test21")
    public String test21(String id,String name){
        return "requestParam 不加注解 - 两个参数" + id + name;
    }
    /*
    (请求路径  显示结果)
    http://localhost:30000/test21  requestParam 不加注解 - 两个参数nullnull
    http://localhost:30000/test21?id=11  requestParam 不加注解 - 两个参数11 null
    http://localhost:30000/test21?id=11&name2=zhangsan requestParam 不加注解 - 两个参数11 null
    未加注解时,传参数和不传参数都可以,传了参数能接收,不传也不影响,错误的参数名也不报错。
     */
    @ResponseBody
    @GetMapping("/test22")
    public String test22(@RequestParam("id") String id,@RequestParam("name") String name){
        return "requestParam加注解 - 两个参数" + id + name;
    }
    /*
    对于定义了RequestParam注解时,此时该方法必须传定义的两个参数(默认为true)
    如果存在一个参数没有那么会报错,或者说参数名称不一致也会报错,因为其中一个参数没有

    http://localhost:30000/test22   未传参数报 参数不存在异常
    There was an unexpected error (type=Bad Request, status=400).
    Required String parameter 'id' is not present
    
	http://localhost:30000/test22?id=1&name=zhangsan  requestParam加注解 - 两个参数1zhangsan
	http://localhost:30000/test22?id=1&name2=zhangsan  当name参数传错时,
	报name参数不存在异常,加上注解后能对参数进行校验
	There was an unexpected error (type=Bad Request, status=400).
	Required String parameter 'name' is not present


     */

ps:@RequestBody一般是在使用post进行注解添加的,接收的是前端传来的json数据,如果前端传来的是table表格的k-v形式的数据,此时加了注解会报错,格式错误。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:51:40  更:2021-08-24 15:52:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:28:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码