自存 关于RestController请求传参数 前端和后端相关

1.Get请求

Get请求传递参数一般是

1.通过@PathVariable来映射 URL 绑定的占位符

后端

复制代码
    @GetMapping("test/{id}")
    public R test(@PathVariable Integer id){
        System.out.println(id);
        return R.success(id);
    }

前端

复制代码
export function test(id:any){
    return request({
        url:"/test/"+id,
        method:"get",

    })

}

请求格式

2 通过params传递参数

关于data 和params两种传递参数的方法 data传递的是再请求体里面传递参数,而params是在请求头传递参数 post 就既可以用请求头也可以用请求体

前端

复制代码
export function test(id:any){
    return request({
        url:"/test",
        method:"get",
        params:{
            id:id
        }
    })

后端

复制代码
    @GetMapping("test")
    public R test(String id){
        System.out.println(id);
        return R.success(id);
    }

请求格式

@Requestparam注解是代表这个参数必须要传

也可以定义一个实体类来接收

复制代码
@Data
public class Test {
    private String name;
    private String age;
    private String sex;
}

后端

复制代码
    @GetMapping("test")
    public R test( Test test1){
//        System.out.println(test);
        System.out.println(test1);
        return R.success(test1);
    }

前端

复制代码
export function test(id:any){
    return request({
        url:"/test",
        method:"get",
        params:{
           name:"张三",
           age:"18",
           sex:"男",
           test:"test"
        }
    })

可以校验实体类

复制代码
@Data
public class Test {
    @NotBlank(message = "用户名不能为空")
    private String name;
    @NotBlank(message = "年龄不能为空")
    private String age;
    @NotBlank(message = "性别不能为空")
    private String sex;
}

    @GetMapping("test")
    public R test(@Validated Test test1){
//        System.out.println(test);
        System.out.println(test1);
        return R.success(test1);
    }

Get请求是通过Url方式传递的 ,所以Get请求不能用@RequestBody来传递参数

2.post请求

@RequestBody是找寻请求体里的数据的,我测试下来 @RequestBody可以接受实体类,可以接收list集合 但接收字符串有一点点问题

2.1接收实体类

前端


复制代码
export function test(id:any){
    return request({
        url:"/test",
        method:"post",
        data:{
            name:'张三',
            age:'18',
            sex:'男'
        }
    })

后端

复制代码
    @PostMapping("test")
    public R test(@RequestBody Test test){
        System.out.println(test);
        return R.success(test);
    }

接收list集合

前端

复制代码
export function test(id:any){
    return request({
        url:"/test",
        method:"post",
        data:[1,2,2,2,,32,13,123]
    })

后端

复制代码
    @PostMapping("test")
    public R test(@RequestBody List<Integer> ids){
        System.out.println(ids);
        return R.success(ids);
    }

接收字符串有一点问题好像。。。不知道是不是我格式有问题

前端

复制代码
export function test(id:any){
    return request({
        url:"/test",
        method:"post",
        data:'test'
    })

后端

复制代码
    @PostMapping("test")
    public R test(@RequestBody String test){
        System.out.println(test);
        return R.success(test);
    }

打印结果

多出一个等于号 ,我个人推测把字符串传递给表单的时候就是以json的格式传输的,requestBody接收自然以json格式解析,所有多出一个=

相关推荐
五号厂房12 分钟前
仿照AntDesign,实现一个自定义Tab
前端
码上飞扬12 分钟前
Java大师成长计划之第5天:Java中的集合框架
java·开发语言
24k小善15 分钟前
FlinkUpsertKafka深度解析
java·大数据·flink·云计算
EnigmaCoder35 分钟前
java面向对象编程【高级篇】之多态
java·开发语言
浏览器爱好者37 分钟前
如何删除Google Chrome中的所有历史记录【一键清除】
前端·chrome
米开朗基杨39 分钟前
Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
前端·后端
秋名RG39 分钟前
浅谈Java 内存管理:栈与堆,垃圾回收
java·开发语言·jvm
Lonwayne40 分钟前
Web服务器技术选型指南:主流方案、核心对比与策略选择
运维·服务器·前端·程序那些事
brzhang1 小时前
效率神器!TmuxAI:一款无痕融入终端的AI助手,让我的开发体验翻倍提升
前端·后端·算法
海底火旺1 小时前
JavaScript 原型链检查:从 `instanceof` 到 `isPrototypeOf` 的演进
前端·javascript·面试