自存 关于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格式解析,所有多出一个=

相关推荐
原则猫1 小时前
前端基础大厦
前端
陈随易2 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·后端·程序员
SoaringHeart3 小时前
Flutter进阶:基于 EasyRefresh 的下拉刷新封装 n_easy_refresh_mixin.dart
前端·flutter
IT_陈寒5 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰5 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
竹林8186 小时前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
karry_k6 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
妙码生花6 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
karry_k6 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
Awu12277 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude