首页 > 其他分享 >【转载】Springboot2.x接收参数的多种方式

【转载】Springboot2.x接收参数的多种方式

时间:2023-12-12 13:44:59浏览次数:35  
标签:body 接收 return name param Springboot2 转载 public String

参考

环境

环境 版本 操作
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;    
}

标签:body,接收,return,name,param,Springboot2,转载,public,String
From: https://www.cnblogs.com/xiaqiuchu/p/17896577.html

相关文章

  • 手摸手入门Springboot2.7集成Swagger2.9.2
    环境介绍技术栈springboot+mybatis-plus+mysql+oracle+Swagger软件版本mysql8IDEAIntelliJIDEA2022.2.1JDK1.8SpringBoot2.7.13mybatis-plus3.5.3.2REST软件架构风格REST即表述性状态传递(英文:RepresentationalStateTransfer,简称REST,中文:表示层状态转移)是RoyFielding博士在20......
  • 特斯拉第三方应用开发指南(一)[转载]
    https://www.cnblogs.com/w1570631036/p/17893398.html特斯拉第三方应用开发指南(一)作者:Zephery个人网址:http://www.wenzhihuai.com本文为作者原创,转载请注明出处:https://www.cnblogs.com/w1570631036/p/17893398.html目录一、特斯拉应用申请1.1创建Tesla账户1.2提交访......
  • (转载-自用)前端面试题
    一、CSS  1.说一下CSS的盒模型。    在HTML页面中的所有元素都可以看成是一个盒子    盒子的组成:内容content、内边距padding、边框border、外边距margin    盒模型的类型:      标准盒模型        margin+borde......
  • 转载:MongoDB的删除文档、查询文档语句
    本文主要介绍MongoDB的删除文档、查询文档命令语句。 目录MongoDB删除文档MongoDB查询文档 MongoDB删除文档MongoDB是一种基于文档的NoSQL数据库,它使用BSON格式存储文档。删除文档是MongoDB数据库中的常见操作之一。下面是MongoDB删除文档的详细介绍和示例:使用......
  • 转载:ReportLab生成带表格和图文的PDF
    转载来自于:https://zhuanlan.zhihu.com/p/456486769龙在天涯 项目环境:环境:AnacondaPython3.10编辑器:PyCharm2021.2.3Packages:Reportlab3.6.2ReportLab简介“ThisisasoftwarelibrarythatletsyoudirectlycreatedocumentsinAdobe'sPortableDocumentForma......
  • [JVM] Java Heap Dump 分析 [转载]
    0序缘起近期项目上我负责的微服务出现了难以排查的问题,目前怀疑是JVM线程方面的情况,但也需从heapdump方面进一步印证,故需深入了解heapdump文件内容的各项含义。本文主要转载了网友的观点,详见:参考文献1HeapDump分析1.1heapdump简介heapdump文件是一个二进制......
  • Error: error:0308010C:digital envelope routines::unsupported 【问题解决】【转载
    原文链接:  https://www.cnblogs.com/jaxu/p/17171211.html今天早上打开电脑,更新了日常工作的github仓库,然后就是习惯性地执行了"npminstall",发现报了下面这个错误:Error:error:0308010C:digitalenveloperoutines::unsupported顺便看了一下错误堆栈,发现是一个Node......
  • C++11、C++14、C++17、C++20新特性总结(5万字详解)(转载)
    文章目录C++11是什么,C++11标准的由来C++auto类型推导完全攻略auto类型推导的语法和规则auto的高级用法auto的限制auto的应用使用auto定义迭代器auto用于泛型编程C++decltype类型推导完全攻略exp注意事项decltype推导规则decltype的实际应用汇总auto和......
  • Spring中controller中关于GET和POST请求的参数接收
    Spring中controller中关于GET和POST请求的参数接收Spring中controller中关于GET和POST请求的参数接收GET请求参数用&符号连接在一起[/get?name=tom]//无参//没有任何参数的请求@GetMapping(value="/metrics/get")@ApiOperation("get请求没有任何参数")publicRespon......
  • vscode建立python项目(转载)
    原文地址:https://blog.csdn.net/shizheng_Li/article/details/115555596问题今天在做python的小项目的时候,需要建立虚拟环境,并且激化它,但是遇到的了问题,如下:PSD:\user\文档\python\python_work\learning_log>python-mvenvll_envPSD:\user\文档\python\python_work\lear......