写在前面

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

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

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

一、获取路径中的值

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”

三、通过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 对象上

四、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 测试结果

五、用@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 测试结果

六、 用@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 测试结果

七、接收文件 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 测试结果

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

springboot如何优雅的获取前端参数的更多相关文章

  1. Spring MVC 获取前端参数的注解

    在与前端交互的开发过程中,出现过几次无法取到参数的情况,费了些时间去排查问题,下面就简单总结一下. 注解详解 我们所要获取的前端传递参数大概可以分为以下四类: requet uri 部分的注解:@Pa ...

  2. 后台获取用户登录token 和获取前端参数方法

    //获取request请求中所有参数 Enumeration<String> names = request.getParameterNames(); HashMap<String, ...

  3. spring boot获取前端参数四种方法

    一:直接参数绑定 @RequestMapping("/hello") @ResponseBody public String hello(String para) { // par ...

  4. SpringBoot 获取前端页面参数的集中方式总结

    SpringBoot的一个好处就是通过注解可以轻松获取前端页面的参数,之后尅将参数经过一系列处理传送到后台数据库,前端时间正好用到.大致分为一下几种: 1.指定前端URL请求参数名称与方法名称一致,这 ...

  5. spring-boot如何去获取前端传递的参数

    本文主要讨论spring-boot如何获取前端传过来的参数,这些参数主要有两大类,一类是URL里的参数,一个是请求body里的参数 url里的参数 通过url里传过来的参数一般有三种方式,下面我们来看 ...

  6. springboot 服务端获取前端传过来的参数7种方式

    下面为7种服务端获取前端传过来的参数的方法  1.直接把表单的参数写在Controller相应的方法的形参中,适用于GET 和 POST请求方式 这种方式不会校验请求里是否带参数,即下面的userna ...

  7. SpringBoot 基于web应用开发(请求参数获取,静态资源,webjars)

    SpringBoot 基于web应用开发 一.Lombok使用 1.导入依赖库 <dependency>    <groupId>org.projectlombok</g ...

  8. springboot 获取控制器参数的几种方式

    这里介绍springboot 获取控制器参数有四种方式 1.无注解下获取参数 2.使用@RequestParam获取参数 3.传递数组 4.通过URL传递参数 无注解下获取参数无注解下获取参数,需要控 ...

  9. Spring Boot获取前端页面参数的几种方式总结

    Spring Boot的一个好处就是通过注解可以轻松获取前端页面的参数,之后可以将参数经过一系列处理传送到后台数据库. 获得的方式有很多种,这里稍微总结一下,大致分为以下几种: 1.指定前端url请求 ...

  10. SpringBoot接收前端参数的三种方法

    都是以前的笔记了,有时间就整理出来了,SpringBoot接收前端参数的三种方法,首先第一种代码: @RestController public class ControllerTest { //访问 ...

随机推荐

  1. 23.2 SEH之异常处理--《Windows核心编程》结构化异常处理

    (structured exception handing)SEH 包含终止处理和异常处理.本章讨论异常处理.   当一个硬件或者软件异常被抛出的时候,操作系统会给我们程序一个查看异常类型的机会,并允 ...

  2. 2021 ASP.NET Core 开发者路线图

    GitHub地址:https://github.com/MoienTajik/AspNetCore-Developer-Roadmap/blob/master/ReadMe.zh-Hans.md

  3. HBase-宽表和高表的对比

    一.宽表和高表定义 HBase 中的表可以设计为高表(tall-narrow table) 和 宽表(flat-wide table): (1) 宽表是指很多列较少行,即列多行少的表,一行中的数据量较 ...

  4. Linux-wget命令使用及参数详解

    wget简介 Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTT ...

  5. Embedding 模型部署及效果评测

    写在前面 最近大模型发展迅速,与之对应的向量化需求也被带动起来了,由此社区也衍生出很多模型,本文选几款,简单做下评测. 前置概念 为方便读者,先简单介绍几个概念. 概念1:Vector Embeddi ...

  6. SP34020 ADAPET - Ada and Pet 题解

    题目传送门 前置知识 前缀函数与 KMP 算法 解法 经检验 样例,我们发现 \(|S|k\) 并不是最优答案. 考虑利用 luogu P4391 [BOI2009] Radio Transmissi ...

  7. OGP协议的使用

    OGP协议是一套Metatags的规格,用来标注页面,告诉我们你的网页快照.帮助社交app高效并准确的获取网页中的核心链接.标题.主图.正文摘要等信息,使得该网页在社交分享中有更好的展现体验. 如果网 ...

  8. 基于 junit5 实现 junitperf 源码分析

    前言 上一节介绍了基于 junit4 实现 junitperf,但是可以发现定义变量的方式依然不够优雅. 那可以让用户使用起来更加自然一些吗? 有的,junit5 为我们带来了更加强大的功能. 拓展阅 ...

  9. 栈溢出-ret2libc地址泄露笔记

    作为一名初学者,在碰到很多攻击思路的时候会感觉很妙,比如gadget的构造,这题的sh参数截断. 1.首先分析程序架构和保护措施. 2.使用IDA开始判断程序是否具备最简单的栈溢出执行条件: ret2 ...

  10. Python输出日志信息

    在Python中要输出日志信息有2种方式: 1.调用内置的print()方法,该方式只能将信息输出到控制台 2.使用logging模块将日志信息输出到文件中(logging模块默认也是输出到控制台:标 ...