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

相关推荐
MapGIS技术支持3 分钟前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
Coder_Boy_7 分钟前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
by__csdn1 小时前
Vue3 setup()函数终极攻略:从入门到精通
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
天天扭码1 小时前
前端如何实现RAG?一文带你速通,使用RAG实现长期记忆
前端·node.js·ai编程
盖世英雄酱581361 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
济南壹软网络科技有限公司1 小时前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app
廋到被风吹走1 小时前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式
一条可有可无的咸鱼2 小时前
企业招聘信息,企业资讯进行公示
java·vue.js·spring boot·uni-app
Luna-player2 小时前
在前端中,<a> 标签的 href=“javascript:;“ 这个是什么意思
开发语言·前端·javascript
lionliu05192 小时前
js的扩展运算符的理解
前端·javascript·vue.js