当前位置: 首页 > article >正文

SpringBoot开发——常用的几种参数传递和参数接收方式

文章目录

  • 一、参数传递的四种方式
    • 1、params传参
    • 2、地址栏传参
    • 3、body表单传参
    • 4、json传参
  • 二、params传参的接收方式
  • 三、地址栏传参的接收方式
  • 四、json传参的接收方式

一、参数传递的四种方式

1、params传参

params传参的格式是http://xxx?参数名=值&参数名=值。
例如:

http://localhost:8080/getUserList?name=&age=20

2、地址栏传参

直接通过/在地址上拼接参数值,这种方式不需要在地址栏上写参数名,后端只需要知道他在地址的哪个位置传的参数就可以拿到值!
例如:

//20241001为传递的参数
http://localhost:8080/getUserInfo/20241001

3、body表单传参

body表单传参,就是请求体传参。form-data的请求是在body中,为key=value格式,同时可以传文件,Content-Type为multipart/form-data,后端可以用@RequestParam接收。

4、json传参

json传参也是在body当中,只不过json是一种数据格式,后端可以用@RequestBody接收。

二、params传参的接收方式

前端params传参的示例代码:

const getUserList = () => {
    axios.get('http://localhost:8080/api/getUserList?name='+ name + '&age=' + age)
        .then((response) => {
            // 请求成功,处理数据
        })
}

如果参数比较多,也可以用以下代码:

const getUserList = () => {
    axios.get('http://localhost:8080/api/getUserList', {
        params: {
            name: name,
            age: age,            
            currentPage: current,
            sizePerPage: size
        }
    }).then(res => {
        ......
    })
};

后端接收代码:

    @GetMapping("/getUserList")
    public ApiResult getUserList(String name, int age, int current, int size){
        System.out.println(name+" , "+age " , " +current+" , "+size);
        // TODO other code
    }

此方式使用场景:
1、GET方式获取特定条件的信息查询

三、地址栏传参的接收方式

前端地址栏传参的示例代码:

const getUserInfo = (userId) => {
    axios.get('http://localhost:8080/api/getUserInfo/' + userId)
    	.then(res => {
        	......
    	})
}

后端接收代码:

	@GetMapping("/getUserInfo/{userId}")
    public ApiResult getUserInfo(@PathVariable("userId") Integer userId){
        System.out.println("getUserInfo: "+userId);
        // TODO ......
    }

此方式的适用场景
1、GET方式获取符合某ID值的对象信息,用于查询显示
2、DELETE方式获取符合某ID值的对象,用于删除场景

DELETE方式的示例
前端:

const deleteUser = (userId) => {
   axios.delete('http://localhost:8080/api/deleteUser/' + userId)
        .then((response) => {
          ......
   })
 }

后端:

	@DeleteMapping("/deleteUser/{userId}")
    public ApiResult deleteStudent(@PathVariable("userId") Integer userId){
        System.out.println("deleteUser: "+userId);
        // TODO ......
    }

四、json传参的接收方式

前端地址栏传参的示例代码:

const form = ref({
})

const saveUser = () => {
    axios.post("http://localhost:8080/api/saveUser", form.value).then(res => {
        ......
    })
}

后端接收代码:

public class User {

    private String name;

    private int age;
    ......
	
	// Getter()、 Setter()、ToString()
}
	@PostMapping("/saveUser")
    public ApiResult saveUser(@RequestBody User user){
        System.out.println("saveUser: "+user.toString());
        //TODO ......
    }

此方式的适用场景
1、POST方式用于增加一个对象信息
2、PUT方式用于更新一个对象信息

PUT方式的示例:
前端:

const form = ref({
})

const updateUser = () => {
  axios.put('http://localhost:8080/api/updateUser', form.value).then(res => {
      ......
    })
}

后端:

public class User {

    private String name;

    private int age;
    ......
	
	// Getter()、 Setter()、ToString()
}
	@PutMapping("/updateUser")
    public ApiResult updateUser(@RequestBody User user){
        System.out.println(user.toString());
        // TODO ......
    }

http://www.kler.cn/a/464056.html

相关文章:

  • C++编程库与框架实战——ZeroMQ消息队列
  • xdoj ROT13加密
  • 【数据结构】树链刨分
  • ES_如何设置ElasticSearch 8.0版本的匿名访问以及https_http模式的互相切换
  • Couchbase 和数据湖技术的区别、联系和相关性分析
  • 低代码引擎插件开发:开启开发的便捷与创新之路
  • js 中的递归应用+异步递归
  • Ungoogled Chromium127编译指南 Linux篇 - 拉取仓库(七)
  • IP-Guard对SolidWorks PDM 加密授权说明
  • Linux 系统中 .d 目录有什么用?
  • 电视广播制式:N制与P制
  • Guava常见特性操作
  • node.js 浅析 与 了解
  • 【视觉SLAM:十一、设计SLAM系统】
  • 人大金仓数据库基于Linux系统的数据库软件安装指南
  • PlantUML 时序图 基本例子
  • 民宿酒店预订系统小程序+uniapp全开源+搭建教程
  • Vue演练场基础知识(三)
  • UVM:testbench architecture
  • AI大模型系列之七:Transformer架构讲解
  • awk使用
  • 【ArcGISPro/GeoScenePro】检查并处理高程数据
  • 3. C语言 数据类型
  • 硬件设计-关于ADS54J60的校准问题
  • HTML——54. form元素属性
  • 开源漏洞管理工具--Faraday