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
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号