Springboot2.x接收参数的多种方式
参考
- https://blog.csdn.net/suki_rong/article/details/80445880
- https://zhuanlan.zhihu.com/p/34597391
- https://juejin.cn/post/6922469125033820168
环境
环境 | 版本 | 操作 |
---|---|---|
windows | 10 | |
JDK | 11 | |
Springboot | 2.3.12.RELEASE |
正文
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import lombok.Data;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@RestController
@RequestMapping("/")
public class IndexController {
/**
* 路径参数 url/{id}
* @param id
* @return
*/
@GetMapping("path/{id}")
public Integer path(@PathVariable(name = "id") Integer id) {
return id;
}
/**
* 查询参数 url?name=
* @param name
* @return
*/
@GetMapping("query")
public String query(@RequestParam(name = "name") String name){
return name;
}
/**
* Body参数 请求内容为 json {"name":"张三"},此处如果使用对象类型接收,则自动转换为对象,通过get、set进行获取请求参数。
* @param body
* @return
*/
@PostMapping("body_json")
public String bodyJson(@RequestBody RequestJson body){
return body.getName();
}
/**
* Body参数 请求内容为字符串 "hello world",此处应用场景为当参数加密作为字符串放到body中的时候,可以通过`@RequestBody String body`获取body内的所有内容
* @param body
* @return
*/
@PostMapping("body_string")
public String bodyString(@RequestBody String body){
return body;
}
/**
* FormData参数 逐个参数接收
* @param name
* @return
*/
@PostMapping("form_data1")
public String formData1(@RequestParam String name){
return name;
}
/**
* FormData参数 对象接收
* @param name
* @return
*/
@PostMapping("form_data2")
public String formData2(RequestJson body){
return body.getName();
}
/**
* FormData参数 数组接收
* @param name
* @return
*/
@PostMapping("form_data3")
public String formData3(@RequestParam(name = "name[0][1]") String name){
return name;
}
/**
* FormData参数 单文件上传
* @param name
* @return
*/
@PostMapping("form_data4")
public String formData4( @RequestParam("file") MultipartFile file, RequestData requestData){
System.out.println("文件大小:"+file.getSize());
return requestData.getName();
}
/**
* FormData参数 多文件上传
* @param name
* @return
*/
@PostMapping("form_data5")
public String formData5( @RequestParam("files") MultipartFile[] files, RequestData requestData){
System.out.println("文件大小:"+files.length);
return requestData.getName();
}
/**
* x-www-from-urlencode参数 单参数接收
* @param name
* @return
*/
@PostMapping("x_www_from_url_encode1")
public String xWWWFromUrlEncode1(@RequestParam String name){
return name;
}
/**
* x-www-from-urlencode参数 Map接收
* @param name
* @return
*/
@PostMapping("x_www_from_url_encode2")
public String xWWWFromUrlEncode2(@RequestBody MultiValueMap<String, String> values){
return values.get("name").toString();
}
}
/**
* 请求 body json实体
*/
@Data
class RequestJson {
private String name;
}
/**
* 请求参数对象
*/
@Data
class RequestData {
private String name;
}
博 主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/p/17896577.html
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
地 址 :https://www.cnblogs.com/xiaqiuchu/p/17896577.html
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
标签:
java
, springboot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!