springboot如何优雅的获取前端参数

news/发布时间2024/5/17 16:05:30

写在前面

对于初学者来说,困难的不是理论知识,而是如何在程序中具体实现。

现在的项目基本上都是前后端分离的项目,如何打通前后端,接收前端传过来的参数呢?

废话不多说,这篇文章就来说一说接收前端参数的具体操作

一、获取路径中的值

1.1 核心代码

@GetMapping("/getArticle/{id}")
public Article getArticle(@PathVariable("id") Long id){System.out.println("获取到路径中的值为:"+id);return parmsService.findArticleById(id);
}

1.2 测试结果

在访问“http://localhost:8080/article/1” 时,程序会自动将URL中的模板变量{id} 绑定到通过@PathVariable注解的同名参数上,所以程序中可以获取到id=1

获取路径中的值

打印结果

二、获取路径中的参数

2.1 核心代码

@RequestMapping(value = "/addUser/",method = RequestMethod.POST)
public String addUser(String  name,String sex,int age){System.out.println("获取到参数中的值为:"+name+","+sex+","+age);return "添加文章成功";
}

2.2 测试结果

这里的参数和上面的不一样,这里的参数是通过“=”隔开的,多个参数使用&分割。 例如测试例子中的“http://localhost:8080/?name=小凡&sex=男&age=18”

postman测试结果

idea打印值

三、通过Bean接收对象参数

3.1 核心代码

//①User
@Data
public class User {private  Integer id;private  String name;private String sex;private  Integer age;
}//接收参数方法
@PostMapping("/addnewUser/")
public String addUser(User user){System.out.println(user);return  "添加用户成功";
}

3.2 测试结果

这里直接将前端传过来的参数映射到User 对象上

postman测试结果

idea打印结果

四、HttpServletRequest接收参数

4.1 核心代码

@PostMapping("/addBook/")
public String addBook(HttpServletRequest request){String bookName = request.getParameter("bookName");String author = request.getParameter("author");System.out.println("获取到参数中的值为:"+bookName+","+author);return "添加书籍成功";
}

4.2 测试结果

postman测试结果

idea测试结果

五、用@RequestParam接收参数

5.1 核心代码

@GetMapping("/getParams")
public String getParms(@RequestParam("param1") String  param1,@RequestParam("param2") String param2){System.out.println("获取到参数中的值为:"+param1+","+param2);return "Param1: " + param1 + ", parm2: " + param2;
}

5.2 测试结果

postman测试结果

idea测试结果

六、 用@RequestBody 接收json数据

6.1 核心代码

//① 定义User实体对象
@Data
public class User {private  Integer id;private  String name;private String sex;private  Integer age;
}
//② 接收参数
@PostMapping("/addUsers")
public List<User> addUsers(@RequestBody List<User> users){System.out.println(""+users);return users;
}

6.2 测试结果

postman测试结果

idea打印结果

七、接收文件 MultipartFile

7.1 核心代码

@PostMapping("/singleFileUpload")
public String singleFileUpload(@RequestParam("file") MultipartFile file){//文件存储路径final String BASE_PATH = "E:\\xiezhrspace\\parm-demo\\";if(file.isEmpty()){return "文件为空";}//获取文件名String fileName = file.getOriginalFilename();try {//新建一个文件路径File dest = new File(BASE_PATH + fileName);//判断路径是否存在,如果不存在就创建一个if(!dest.getParentFile().exists()){dest.getParentFile().mkdirs();}//将上传文件保存到一个目标文件当中file.transferTo(dest);} catch (IOException e) {e.printStackTrace();}return "上传成功";
}

7.2 测试结果

postman测试结果

文件上传成功

以上就是本期全部内容,希望对您有所帮助,我们下期再见(●'◡'●)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/54154026.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

HDFSDATANODE数据传输详解

本文主要阐述datanode中一个socket连接接收字节流的构成,帮助datanode的接收与处理数据。注意hadoop版本为3.1.1。 写在前面 Datanode本质上也是TCPServer,一般的TCPServer接到客户端请求以后会分配一个线程处理,对于Datanode而言,这个线程可以叫做Op处理连接。每个OP连接会…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记12_移动平台(上)

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记12_移动平台(上)1. 广告 1.1. 广告收入的来源 1.1.1. 向客户推荐广告投放网址 1.1.2. 提供有效提高产品广告点击率的咨询服务 1.1.3. 从合作伙伴的广告收入中捞上一笔 1.2. 对于广告主来讲,他们无意于与各家网站逐一谈判 1.2…

思元370芯片系列芯片概述

思元370芯片系列芯片概述基于7nm制程工艺,思元370是寒武纪首款采用chiplet(芯粒)技术的AI芯片,集成了390亿个晶体管,最大算力高达256TOPS(INT8),是寒武纪第二代产品思元270算力的2倍。凭借寒武纪最新智能芯片架构MLUarch03,思元370实测性能表现更为优秀。思元370也是国内…

毕设进度3.14

为后端和前端添加参数校验 明日计划找找之前功能的漏洞

baremetal bsp工程管理

参考学习:https://www.bilibili.com/video/BV1yE411h7uQ?p=20&vd_source=432ba293ecfc949a4174ab91ccc526d6便于bsp工程管理,将工程进行分类管理,如下图Makefile编译脚本文件 bsp文件夹存所写的bsp驱动 imx6ul文件夹存放imx6ull官方sdk文件 imx6ul.lds是链接脚本 obj文…