Spring Cloud 接收FormData、JSON传参【数组、实体、文件】

一、FormData接收参数

实体类

import lombok.Data;
import java.io.Serializable;

@Data
public class User implements Serializable {
    private String username;
    private Integer age;
}

1、实体接收

请求html代码

<form action="/user/formDataModel" method="post" enctype="multipart/form-data">
    <input type="text" name="username" value="wh">
    <input type="text" name="age" value="1">
    <button type="submit">提交请求</button>
</form>

后端接收代码

 /**
     * FormData接收(实体)
     * @param user
     * @return
     */
    @RequestMapping("/formDataModel")
    public String formDataModel(User user){
        return "OK";
    }

2、接收实体加文件

实体类

import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;

@Data
public class User implements Serializable {
    private String username;
    private Integer age;
    private MultipartFile file;
}

请求html代码

<form action="/user/formDataModel" method="post" enctype="multipart/form-data">
    <input type="text" name="username" value="wh">
    <input type="text" name="age" value="1">
    <input type = "file" name = "file" id = "file" />
    <button type="submit">提交请求</button>
</form>

后端接收代码

/**
     * FormData接收数组(实体+文件)
     * @param user
     * @return
     */
    @RequestMapping("/formDataModelAndFile")
    public String formDataModelAndFile(User user){
        return "OK";
    }

3、数组实体中包含文件

请求html代码

<form id="uploadForm" enctype = "multipart/form-data">
    <input type = "file" name = "file" id = "file" />
    <input type = "button" id = "btnSave" onclick = "uploadSubmit()" value="提交"/>
</form>
</body>
<script>
    function uploadSubmit() {
        // var formData = new FormData(document.getElementById('uploadForm'));
        const postData = new FormData();
        let checklist = [
            {
                username: '2221',
                age: '88',
                file: document.getElementById('file').files[0]
            },
            {
                username: '1111',
                age: '881111',
                file: document.getElementById('file').files[0]
            }
        ];
        console.log( document.getElementById('file').files[0])
        for (let i = 0; i < checklist.length; i++) {
            postData.append("orders[" + i + "].username", checklist[i].username);
            postData.append("orders[" + i + "].age", checklist[i].age);
            postData.append("orders[" + i + "].file", checklist[i].file);
        }

        $.ajax({
            url: "http://localhost:9090/user/FormDataUser",
            type: "post",
            data: postData,
            dataType: "json",
            processData: false,
            contentType: false,
            success: function (result) {
                console.log("上传成功");
            },
            error: function (a, b, c) {
                console.log("失败了");
            },
            complete: function () {
                console.log("请求最后处理的方法");
            },
        })

        // var request = new XMLHttpRequest();
        // request.open("POST", "http://localhost:9090/user/FormDataUser")
        // request.send(postData);
    }
</script>

后端接收

 /**
     * FormData接收数组(数组中实体包含文件)
     * @param request
     * @param userForm
     * @return
     */
    @RequestMapping("/FormDataUser")
    public String testFormData(HttpServletRequest request,@ModelAttribute("userForm") UserVo userForm){
        System.out.println("111111=====================11111111");
        return "OK";
    }

实体

import lombok.Data;

import java.util.List;

@Data
public class UserVo {

    private List<User> orders;
}
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;

@Data
public class User implements Serializable {
    private String username;
    private Integer age;
    private MultipartFile file;
}

 二、JSON数组接收参数

postman请求参数,注:选择raw、JSON(application/json),和json格式的规范书写

后端接收代码,注:标签@RequestBody的使用

/**
     * JSON数组接收参数
     * @param list
     */
    @RequestMapping("testJson")
    public void testFast(@RequestBody List<User> list){
        System.out.println("===================");
    }

  

 

 
原文地址:https://www.cnblogs.com/wangdahui/p/14681860.html